diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha1.sol b/contracts/verifiers/idcard/Verifier_idcard_sha1.sol
new file mode 100644
index 0000000..7760e1b
--- /dev/null
+++ b/contracts/verifiers/idcard/Verifier_idcard_sha1.sol
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0
+/*
+ Copyright 2021 0KIMS association.
+
+ This file is generated with [snarkJS](https://github.com/iden3/snarkjs).
+
+ snarkJS is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ snarkJS is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with snarkJS. If not, see .
+*/
+
+pragma solidity >=0.7.0 <0.9.0;
+
+contract Verifier_idcard_sha1 {
+ // Scalar field size
+ uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
+ // Base field size
+ uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
+
+ // Verification Key data
+ uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
+ uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
+ uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
+ uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
+ uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
+ uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
+ uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
+ uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
+ uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
+ uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
+ uint256 constant deltax1 = 17619978066981023815786197539891834595467101800168005440602760726252419224182;
+ uint256 constant deltax2 = 18977671751559096556952089773959459997838190076805335585523439415828663041091;
+ uint256 constant deltay1 = 20908933493580347546254738498174154838704896433856769222253193499541811828688;
+ uint256 constant deltay2 = 14228223910638183943848630972622539108882152661926856215951516846313437227100;
+
+
+ uint256 constant IC0x = 18996279980038711758193690354940715782561235380342286407554135740201513779279;
+ uint256 constant IC0y = 11625887395259635500670464496187717958964706644081328357030137540193674702015;
+
+ uint256 constant IC1x = 2803372302542279061992801806634278926291194002619610390291532752624573014173;
+ uint256 constant IC1y = 10299540508560758826097485034731152593441586555541996535916675882907375474435;
+
+ uint256 constant IC2x = 3515557068537248154485087584130170954856304985271889186452891924457640062970;
+ uint256 constant IC2y = 1470817234371769592572885478845544364540877905963971376961793016405008053683;
+
+ uint256 constant IC3x = 9882623278822854916070400357014056422896394552342808356843508747816984172644;
+ uint256 constant IC3y = 15531717559181484462850765055876863273664930315712089064242339049088256330437;
+
+ uint256 constant IC4x = 1901898694368678166577209587685345696272596482922653049767926510562298598974;
+ uint256 constant IC4y = 5058572446650720343780896019894709715665377022988535030242875984721308263761;
+
+ uint256 constant IC5x = 20431838211546078848142643584396353147225169357005485193415850116721939313698;
+ uint256 constant IC5y = 12674687627463988134904336509745795614944363742165672249109257935456985648885;
+
+ uint256 constant IC6x = 4014435991936218046726515736305912875209372027501216181172190606316328747472;
+ uint256 constant IC6y = 16912585017352105870989796655854968791219729237634485846585064696134374045934;
+
+ uint256 constant IC7x = 12553131107985421444412332178956153560186927617121861418939287320178940975682;
+ uint256 constant IC7y = 15211374507967162250825030127268522561555464722253667504386597832287358118777;
+
+ uint256 constant IC8x = 9360822385172522643659404900386728650189826239156564955589551865188818779244;
+ uint256 constant IC8y = 1600740977972980205306895108993336563635329497019830065817810193590153972774;
+
+
+ // Memory data
+ uint16 constant pVk = 0;
+ uint16 constant pPairing = 128;
+
+ uint16 constant pLastMem = 896;
+
+ function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {
+ assembly {
+ function checkField(v) {
+ if iszero(lt(v, r)) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ // G1 function to multiply a G1 value(x,y) to value in an address
+ function g1_mulAccC(pR, x, y, s) {
+ let success
+ let mIn := mload(0x40)
+ mstore(mIn, x)
+ mstore(add(mIn, 32), y)
+ mstore(add(mIn, 64), s)
+
+ success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+
+ mstore(add(mIn, 64), mload(pR))
+ mstore(add(mIn, 96), mload(add(pR, 32)))
+
+ success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {
+ let _pPairing := add(pMem, pPairing)
+ let _pVk := add(pMem, pVk)
+
+ mstore(_pVk, IC0x)
+ mstore(add(_pVk, 32), IC0y)
+
+ // Compute the linear combination vk_x
+
+ g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))
+
+ g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))
+
+ g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))
+
+ g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))
+
+ g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))
+
+ g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))
+
+ g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))
+
+ g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))
+
+
+ // -A
+ mstore(_pPairing, calldataload(pA))
+ mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))
+
+ // B
+ mstore(add(_pPairing, 64), calldataload(pB))
+ mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
+ mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
+ mstore(add(_pPairing, 160), calldataload(add(pB, 96)))
+
+ // alpha1
+ mstore(add(_pPairing, 192), alphax)
+ mstore(add(_pPairing, 224), alphay)
+
+ // beta2
+ mstore(add(_pPairing, 256), betax1)
+ mstore(add(_pPairing, 288), betax2)
+ mstore(add(_pPairing, 320), betay1)
+ mstore(add(_pPairing, 352), betay2)
+
+ // vk_x
+ mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
+ mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))
+
+
+ // gamma2
+ mstore(add(_pPairing, 448), gammax1)
+ mstore(add(_pPairing, 480), gammax2)
+ mstore(add(_pPairing, 512), gammay1)
+ mstore(add(_pPairing, 544), gammay2)
+
+ // C
+ mstore(add(_pPairing, 576), calldataload(pC))
+ mstore(add(_pPairing, 608), calldataload(add(pC, 32)))
+
+ // delta2
+ mstore(add(_pPairing, 640), deltax1)
+ mstore(add(_pPairing, 672), deltax2)
+ mstore(add(_pPairing, 704), deltay1)
+ mstore(add(_pPairing, 736), deltay2)
+
+
+ let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)
+
+ isOk := and(success, mload(_pPairing))
+ }
+
+ let pMem := mload(0x40)
+ mstore(0x40, add(pMem, pLastMem))
+
+ // Validate that all evaluations ∈ F
+
+ checkField(calldataload(add(_pubSignals, 0)))
+
+ checkField(calldataload(add(_pubSignals, 32)))
+
+ checkField(calldataload(add(_pubSignals, 64)))
+
+ checkField(calldataload(add(_pubSignals, 96)))
+
+ checkField(calldataload(add(_pubSignals, 128)))
+
+ checkField(calldataload(add(_pubSignals, 160)))
+
+ checkField(calldataload(add(_pubSignals, 192)))
+
+ checkField(calldataload(add(_pubSignals, 224)))
+
+
+ // Validate all evaluations
+ let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)
+
+ mstore(0, isValid)
+ return(0, 0x20)
+ }
+ }
+ }
diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha224.sol b/contracts/verifiers/idcard/Verifier_idcard_sha224.sol
new file mode 100644
index 0000000..a73a18c
--- /dev/null
+++ b/contracts/verifiers/idcard/Verifier_idcard_sha224.sol
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0
+/*
+ Copyright 2021 0KIMS association.
+
+ This file is generated with [snarkJS](https://github.com/iden3/snarkjs).
+
+ snarkJS is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ snarkJS is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with snarkJS. If not, see .
+*/
+
+pragma solidity >=0.7.0 <0.9.0;
+
+contract Verifier_idcard_sha224 {
+ // Scalar field size
+ uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
+ // Base field size
+ uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
+
+ // Verification Key data
+ uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
+ uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
+ uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
+ uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
+ uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
+ uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
+ uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
+ uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
+ uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
+ uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
+ uint256 constant deltax1 = 11528676451769479893890586016735137918738468325373806791162804722335540091687;
+ uint256 constant deltax2 = 1669837297114499788327298581040767838561450127612980516405627911946405462534;
+ uint256 constant deltay1 = 6941559998409292029643061692869111692962972983639467708165579202057066355393;
+ uint256 constant deltay2 = 5830426388149171192237417426123628387055857734312228139923031685962780158683;
+
+
+ uint256 constant IC0x = 7956549064730906111377240031143142340365041322388677884335874178877686787764;
+ uint256 constant IC0y = 21790724438154385202050210979362691842601057366517795997725819221691066711755;
+
+ uint256 constant IC1x = 194496735259530299748406225961144873675065744182291314773378155732660624785;
+ uint256 constant IC1y = 11997520324628331139758497735152902564190894765922626854425531937009442055993;
+
+ uint256 constant IC2x = 20715659899206363009959001352152706938315031879094658313760729922559866072687;
+ uint256 constant IC2y = 7206931389654884759550699855892139536019290824089073066664826074006671238130;
+
+ uint256 constant IC3x = 15647600021508609611386466189009105815365382348025150745900556253207448104416;
+ uint256 constant IC3y = 21505866779139736379603548820171953204904071774611582301872666143749664223782;
+
+ uint256 constant IC4x = 20755365119539793284398369809183714774718274129718886008840939250709368056443;
+ uint256 constant IC4y = 1514096099909968992998399649590292902743246116759867014081902827133607740031;
+
+ uint256 constant IC5x = 546503567340616503487627262812738482343972115809910511635137549145784523079;
+ uint256 constant IC5y = 19642933456728346239715412395526737799407086369371836139030446410313981127143;
+
+ uint256 constant IC6x = 8655387554042588479764841421113461904648339947579594888232313481540140210605;
+ uint256 constant IC6y = 6194582962607983379640117680151386004082379702276643252309562756392639795036;
+
+ uint256 constant IC7x = 19998957772364520049216030643423539846174804959493071837156234560114053372045;
+ uint256 constant IC7y = 7876066213188359986267785706274504001460175706745828533890570001500672413722;
+
+ uint256 constant IC8x = 17919646429039771684856980550026060820137724553201143039316157510821681334959;
+ uint256 constant IC8y = 12252744369277572141619541598958408920185159640281676168728109026113461424943;
+
+
+ // Memory data
+ uint16 constant pVk = 0;
+ uint16 constant pPairing = 128;
+
+ uint16 constant pLastMem = 896;
+
+ function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {
+ assembly {
+ function checkField(v) {
+ if iszero(lt(v, r)) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ // G1 function to multiply a G1 value(x,y) to value in an address
+ function g1_mulAccC(pR, x, y, s) {
+ let success
+ let mIn := mload(0x40)
+ mstore(mIn, x)
+ mstore(add(mIn, 32), y)
+ mstore(add(mIn, 64), s)
+
+ success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+
+ mstore(add(mIn, 64), mload(pR))
+ mstore(add(mIn, 96), mload(add(pR, 32)))
+
+ success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {
+ let _pPairing := add(pMem, pPairing)
+ let _pVk := add(pMem, pVk)
+
+ mstore(_pVk, IC0x)
+ mstore(add(_pVk, 32), IC0y)
+
+ // Compute the linear combination vk_x
+
+ g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))
+
+ g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))
+
+ g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))
+
+ g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))
+
+ g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))
+
+ g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))
+
+ g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))
+
+ g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))
+
+
+ // -A
+ mstore(_pPairing, calldataload(pA))
+ mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))
+
+ // B
+ mstore(add(_pPairing, 64), calldataload(pB))
+ mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
+ mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
+ mstore(add(_pPairing, 160), calldataload(add(pB, 96)))
+
+ // alpha1
+ mstore(add(_pPairing, 192), alphax)
+ mstore(add(_pPairing, 224), alphay)
+
+ // beta2
+ mstore(add(_pPairing, 256), betax1)
+ mstore(add(_pPairing, 288), betax2)
+ mstore(add(_pPairing, 320), betay1)
+ mstore(add(_pPairing, 352), betay2)
+
+ // vk_x
+ mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
+ mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))
+
+
+ // gamma2
+ mstore(add(_pPairing, 448), gammax1)
+ mstore(add(_pPairing, 480), gammax2)
+ mstore(add(_pPairing, 512), gammay1)
+ mstore(add(_pPairing, 544), gammay2)
+
+ // C
+ mstore(add(_pPairing, 576), calldataload(pC))
+ mstore(add(_pPairing, 608), calldataload(add(pC, 32)))
+
+ // delta2
+ mstore(add(_pPairing, 640), deltax1)
+ mstore(add(_pPairing, 672), deltax2)
+ mstore(add(_pPairing, 704), deltay1)
+ mstore(add(_pPairing, 736), deltay2)
+
+
+ let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)
+
+ isOk := and(success, mload(_pPairing))
+ }
+
+ let pMem := mload(0x40)
+ mstore(0x40, add(pMem, pLastMem))
+
+ // Validate that all evaluations ∈ F
+
+ checkField(calldataload(add(_pubSignals, 0)))
+
+ checkField(calldataload(add(_pubSignals, 32)))
+
+ checkField(calldataload(add(_pubSignals, 64)))
+
+ checkField(calldataload(add(_pubSignals, 96)))
+
+ checkField(calldataload(add(_pubSignals, 128)))
+
+ checkField(calldataload(add(_pubSignals, 160)))
+
+ checkField(calldataload(add(_pubSignals, 192)))
+
+ checkField(calldataload(add(_pubSignals, 224)))
+
+
+ // Validate all evaluations
+ let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)
+
+ mstore(0, isValid)
+ return(0, 0x20)
+ }
+ }
+ }
diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha256.sol b/contracts/verifiers/idcard/Verifier_idcard_sha256.sol
new file mode 100644
index 0000000..a8a2866
--- /dev/null
+++ b/contracts/verifiers/idcard/Verifier_idcard_sha256.sol
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0
+/*
+ Copyright 2021 0KIMS association.
+
+ This file is generated with [snarkJS](https://github.com/iden3/snarkjs).
+
+ snarkJS is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ snarkJS is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with snarkJS. If not, see .
+*/
+
+pragma solidity >=0.7.0 <0.9.0;
+
+contract Verifier_idcard_sha256 {
+ // Scalar field size
+ uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
+ // Base field size
+ uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
+
+ // Verification Key data
+ uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
+ uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
+ uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
+ uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
+ uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
+ uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
+ uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
+ uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
+ uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
+ uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
+ uint256 constant deltax1 = 7108172092573882105714150420819903874929273543981336077096548575233836698051;
+ uint256 constant deltax2 = 9695439068955503176000162189209453260970522179427226826392485950884732033729;
+ uint256 constant deltay1 = 16624583325771504903535054637337144476996725989113711836927112345441013919930;
+ uint256 constant deltay2 = 19276965844456483080300510857160492253225414152970648735893251665359428236630;
+
+
+ uint256 constant IC0x = 5807073784152025986669718972725067491508529549260211827791183407948915436053;
+ uint256 constant IC0y = 3153946873969499332822384811010472154710578920431675755800464865969736663036;
+
+ uint256 constant IC1x = 5283721587798488023915095641638604156996041660509251368562130109756059799599;
+ uint256 constant IC1y = 2251445930270611158926192324108159716803841205251031703916621053847441007382;
+
+ uint256 constant IC2x = 21407052562448988952738358426382390833296254762259827778796379478555008692000;
+ uint256 constant IC2y = 18591747716383551089930777925944581376763038844729833670184573014967075693963;
+
+ uint256 constant IC3x = 16064178344486809248644271655972142215473007569225250956257403428941755984216;
+ uint256 constant IC3y = 16062675701931919990917355706503482044477775920236427526503412929529399918562;
+
+ uint256 constant IC4x = 1546275417863397238581225548343538707005318324353758499244112897265836238229;
+ uint256 constant IC4y = 13063754323861482376286995035193283748950215952642567157801002274791495918786;
+
+ uint256 constant IC5x = 1141079313021565119492833931790595578183633299696035861651276524275111123783;
+ uint256 constant IC5y = 7166084310153930480927638721172548523660750971204544078450628343211919242925;
+
+ uint256 constant IC6x = 1971179529908889456121637385865871080294916196885258489908146419781659282160;
+ uint256 constant IC6y = 50579574438141375186398099028392679205914531546519480875621917297963856441;
+
+ uint256 constant IC7x = 9100199755459715713519393317043280025615287889744180275461286004332778013036;
+ uint256 constant IC7y = 7061165107258796431766606546368143418686100123207385991264212484194753568741;
+
+ uint256 constant IC8x = 17364972641898162599433694008538623445213336000800890562234624733284246493780;
+ uint256 constant IC8y = 12746849599984592234975470756593776746553513502857491451188960360675308816217;
+
+
+ // Memory data
+ uint16 constant pVk = 0;
+ uint16 constant pPairing = 128;
+
+ uint16 constant pLastMem = 896;
+
+ function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {
+ assembly {
+ function checkField(v) {
+ if iszero(lt(v, r)) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ // G1 function to multiply a G1 value(x,y) to value in an address
+ function g1_mulAccC(pR, x, y, s) {
+ let success
+ let mIn := mload(0x40)
+ mstore(mIn, x)
+ mstore(add(mIn, 32), y)
+ mstore(add(mIn, 64), s)
+
+ success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+
+ mstore(add(mIn, 64), mload(pR))
+ mstore(add(mIn, 96), mload(add(pR, 32)))
+
+ success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {
+ let _pPairing := add(pMem, pPairing)
+ let _pVk := add(pMem, pVk)
+
+ mstore(_pVk, IC0x)
+ mstore(add(_pVk, 32), IC0y)
+
+ // Compute the linear combination vk_x
+
+ g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))
+
+ g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))
+
+ g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))
+
+ g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))
+
+ g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))
+
+ g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))
+
+ g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))
+
+ g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))
+
+
+ // -A
+ mstore(_pPairing, calldataload(pA))
+ mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))
+
+ // B
+ mstore(add(_pPairing, 64), calldataload(pB))
+ mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
+ mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
+ mstore(add(_pPairing, 160), calldataload(add(pB, 96)))
+
+ // alpha1
+ mstore(add(_pPairing, 192), alphax)
+ mstore(add(_pPairing, 224), alphay)
+
+ // beta2
+ mstore(add(_pPairing, 256), betax1)
+ mstore(add(_pPairing, 288), betax2)
+ mstore(add(_pPairing, 320), betay1)
+ mstore(add(_pPairing, 352), betay2)
+
+ // vk_x
+ mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
+ mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))
+
+
+ // gamma2
+ mstore(add(_pPairing, 448), gammax1)
+ mstore(add(_pPairing, 480), gammax2)
+ mstore(add(_pPairing, 512), gammay1)
+ mstore(add(_pPairing, 544), gammay2)
+
+ // C
+ mstore(add(_pPairing, 576), calldataload(pC))
+ mstore(add(_pPairing, 608), calldataload(add(pC, 32)))
+
+ // delta2
+ mstore(add(_pPairing, 640), deltax1)
+ mstore(add(_pPairing, 672), deltax2)
+ mstore(add(_pPairing, 704), deltay1)
+ mstore(add(_pPairing, 736), deltay2)
+
+
+ let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)
+
+ isOk := and(success, mload(_pPairing))
+ }
+
+ let pMem := mload(0x40)
+ mstore(0x40, add(pMem, pLastMem))
+
+ // Validate that all evaluations ∈ F
+
+ checkField(calldataload(add(_pubSignals, 0)))
+
+ checkField(calldataload(add(_pubSignals, 32)))
+
+ checkField(calldataload(add(_pubSignals, 64)))
+
+ checkField(calldataload(add(_pubSignals, 96)))
+
+ checkField(calldataload(add(_pubSignals, 128)))
+
+ checkField(calldataload(add(_pubSignals, 160)))
+
+ checkField(calldataload(add(_pubSignals, 192)))
+
+ checkField(calldataload(add(_pubSignals, 224)))
+
+
+ // Validate all evaluations
+ let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)
+
+ mstore(0, isValid)
+ return(0, 0x20)
+ }
+ }
+ }
diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha384.sol b/contracts/verifiers/idcard/Verifier_idcard_sha384.sol
new file mode 100644
index 0000000..3e41e1b
--- /dev/null
+++ b/contracts/verifiers/idcard/Verifier_idcard_sha384.sol
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0
+/*
+ Copyright 2021 0KIMS association.
+
+ This file is generated with [snarkJS](https://github.com/iden3/snarkjs).
+
+ snarkJS is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ snarkJS is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with snarkJS. If not, see .
+*/
+
+pragma solidity >=0.7.0 <0.9.0;
+
+contract Verifier_idcard_sha384 {
+ // Scalar field size
+ uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
+ // Base field size
+ uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
+
+ // Verification Key data
+ uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
+ uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
+ uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
+ uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
+ uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
+ uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
+ uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
+ uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
+ uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
+ uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
+ uint256 constant deltax1 = 19655267862703232013829558435145045870843976930317590302824065146843396793287;
+ uint256 constant deltax2 = 14195549125710551284606145175737530478528743926899571023260883255716761594395;
+ uint256 constant deltay1 = 12351506351799819269703309449630651195742753280534835077105389539461715372776;
+ uint256 constant deltay2 = 7757467232203449399932908423406007245263352828411880209643256057184653017967;
+
+
+ uint256 constant IC0x = 11270188442615110054592905685303866070211371561895152828128613979248055308430;
+ uint256 constant IC0y = 17094828042062504652619232971444441284630915101777029406911574231991586336724;
+
+ uint256 constant IC1x = 18751691849380434759742123152792239506083151498563933974092309240285734437188;
+ uint256 constant IC1y = 20049688398989672878619117574546912141000756138423254830622095575650209521;
+
+ uint256 constant IC2x = 5938392327398300804986545026506195748618068681474530419676855339051724354681;
+ uint256 constant IC2y = 8496173201972055300493072974747730402044794614021033901250025816096583531491;
+
+ uint256 constant IC3x = 18000232485605953449068588695892070696902807064395147271058762007105019126334;
+ uint256 constant IC3y = 13923155271741522539404325966123937970365444537725373655255388853887141798562;
+
+ uint256 constant IC4x = 18010446893195512579759629398857801006052931911571641584652135841768992002694;
+ uint256 constant IC4y = 8276620288288895394093542524347952614344582824042813385149643354238997853456;
+
+ uint256 constant IC5x = 1772200220203916441938998769520117542016198278365528522982894992382620434050;
+ uint256 constant IC5y = 10763253272545780012285573652711822860500927391871532508832349175799702957899;
+
+ uint256 constant IC6x = 2845166560779510830835994118050041826820064658573423743433800926181089860866;
+ uint256 constant IC6y = 11211513421119271124146455847515997833727893766507544722895265116859776449715;
+
+ uint256 constant IC7x = 20144845268222422495539907720657978943445065896623586123199733159048326999760;
+ uint256 constant IC7y = 19718463288658080919803732449300100569607034448022178085387100796258626298784;
+
+ uint256 constant IC8x = 7058482481805554138205851299679309168316653411824837725236270182057684890239;
+ uint256 constant IC8y = 10896475570578198455810015516790890845312936312589495726969700601169379853378;
+
+
+ // Memory data
+ uint16 constant pVk = 0;
+ uint16 constant pPairing = 128;
+
+ uint16 constant pLastMem = 896;
+
+ function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {
+ assembly {
+ function checkField(v) {
+ if iszero(lt(v, r)) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ // G1 function to multiply a G1 value(x,y) to value in an address
+ function g1_mulAccC(pR, x, y, s) {
+ let success
+ let mIn := mload(0x40)
+ mstore(mIn, x)
+ mstore(add(mIn, 32), y)
+ mstore(add(mIn, 64), s)
+
+ success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+
+ mstore(add(mIn, 64), mload(pR))
+ mstore(add(mIn, 96), mload(add(pR, 32)))
+
+ success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {
+ let _pPairing := add(pMem, pPairing)
+ let _pVk := add(pMem, pVk)
+
+ mstore(_pVk, IC0x)
+ mstore(add(_pVk, 32), IC0y)
+
+ // Compute the linear combination vk_x
+
+ g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))
+
+ g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))
+
+ g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))
+
+ g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))
+
+ g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))
+
+ g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))
+
+ g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))
+
+ g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))
+
+
+ // -A
+ mstore(_pPairing, calldataload(pA))
+ mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))
+
+ // B
+ mstore(add(_pPairing, 64), calldataload(pB))
+ mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
+ mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
+ mstore(add(_pPairing, 160), calldataload(add(pB, 96)))
+
+ // alpha1
+ mstore(add(_pPairing, 192), alphax)
+ mstore(add(_pPairing, 224), alphay)
+
+ // beta2
+ mstore(add(_pPairing, 256), betax1)
+ mstore(add(_pPairing, 288), betax2)
+ mstore(add(_pPairing, 320), betay1)
+ mstore(add(_pPairing, 352), betay2)
+
+ // vk_x
+ mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
+ mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))
+
+
+ // gamma2
+ mstore(add(_pPairing, 448), gammax1)
+ mstore(add(_pPairing, 480), gammax2)
+ mstore(add(_pPairing, 512), gammay1)
+ mstore(add(_pPairing, 544), gammay2)
+
+ // C
+ mstore(add(_pPairing, 576), calldataload(pC))
+ mstore(add(_pPairing, 608), calldataload(add(pC, 32)))
+
+ // delta2
+ mstore(add(_pPairing, 640), deltax1)
+ mstore(add(_pPairing, 672), deltax2)
+ mstore(add(_pPairing, 704), deltay1)
+ mstore(add(_pPairing, 736), deltay2)
+
+
+ let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)
+
+ isOk := and(success, mload(_pPairing))
+ }
+
+ let pMem := mload(0x40)
+ mstore(0x40, add(pMem, pLastMem))
+
+ // Validate that all evaluations ∈ F
+
+ checkField(calldataload(add(_pubSignals, 0)))
+
+ checkField(calldataload(add(_pubSignals, 32)))
+
+ checkField(calldataload(add(_pubSignals, 64)))
+
+ checkField(calldataload(add(_pubSignals, 96)))
+
+ checkField(calldataload(add(_pubSignals, 128)))
+
+ checkField(calldataload(add(_pubSignals, 160)))
+
+ checkField(calldataload(add(_pubSignals, 192)))
+
+ checkField(calldataload(add(_pubSignals, 224)))
+
+
+ // Validate all evaluations
+ let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)
+
+ mstore(0, isValid)
+ return(0, 0x20)
+ }
+ }
+ }
diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha512.sol b/contracts/verifiers/idcard/Verifier_idcard_sha512.sol
new file mode 100644
index 0000000..3f5016a
--- /dev/null
+++ b/contracts/verifiers/idcard/Verifier_idcard_sha512.sol
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0
+/*
+ Copyright 2021 0KIMS association.
+
+ This file is generated with [snarkJS](https://github.com/iden3/snarkjs).
+
+ snarkJS is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ snarkJS is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with snarkJS. If not, see .
+*/
+
+pragma solidity >=0.7.0 <0.9.0;
+
+contract Verifier_idcard_sha512 {
+ // Scalar field size
+ uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
+ // Base field size
+ uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
+
+ // Verification Key data
+ uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
+ uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
+ uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
+ uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
+ uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
+ uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
+ uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
+ uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
+ uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
+ uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
+ uint256 constant deltax1 = 4935033327587461782389399627854920991236616908810469118714751732342275061446;
+ uint256 constant deltax2 = 15040958817808294539935544369419776183117239349380901163111409504958017663844;
+ uint256 constant deltay1 = 2007224316571344161465238472801840878489508282789288888858559848605646240848;
+ uint256 constant deltay2 = 18559749753958183583592478532149214224703016975298333460861915544653661358144;
+
+
+ uint256 constant IC0x = 6775054402228643716255802334734986948682682430518279486253196481989309566722;
+ uint256 constant IC0y = 1256219047132642118025609848816390346107005389894625383105806516968349425164;
+
+ uint256 constant IC1x = 10110553127718601502494156062027021792279415695007706303064445895305746796972;
+ uint256 constant IC1y = 19898978399161065879464846829838064639432473397440657393515694239075549459414;
+
+ uint256 constant IC2x = 14560187434499034871351467627171103172625120844651854114827556003788720970417;
+ uint256 constant IC2y = 14936108571712972245301749671097039789606832305941080664225776268655751656953;
+
+ uint256 constant IC3x = 14059919891828809017722021432418231931402595098208687542598123338150745640383;
+ uint256 constant IC3y = 5287189187302449882380587305482098132045305570686129384654017642428856537257;
+
+ uint256 constant IC4x = 6706949763853995059505242437648432929838165367162467746373417384817649939970;
+ uint256 constant IC4y = 2015510185648144270749764376656342256126280301977931907354368277198561816787;
+
+ uint256 constant IC5x = 18546765018009385869253392738080678323434493864448585402685748329856156497557;
+ uint256 constant IC5y = 9710848189318571196518271373510494268801356872445810355853168058492459988199;
+
+ uint256 constant IC6x = 544902746110577324329364298650693667366017259389786868738072664789424802924;
+ uint256 constant IC6y = 19862963901307499231830066453364234728952499255639862660100552186005791941065;
+
+ uint256 constant IC7x = 9061076520764351620379515690585690079034134082404925699620585204866352078475;
+ uint256 constant IC7y = 19484642542605957456985051447710501567528279902650299867448130248236291732801;
+
+ uint256 constant IC8x = 9914119697422775374510091216988900063691223646782798037580428451954809638249;
+ uint256 constant IC8y = 12901895327948330263975865343040217195073424381052892161417037093019981392204;
+
+
+ // Memory data
+ uint16 constant pVk = 0;
+ uint16 constant pPairing = 128;
+
+ uint16 constant pLastMem = 896;
+
+ function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {
+ assembly {
+ function checkField(v) {
+ if iszero(lt(v, r)) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ // G1 function to multiply a G1 value(x,y) to value in an address
+ function g1_mulAccC(pR, x, y, s) {
+ let success
+ let mIn := mload(0x40)
+ mstore(mIn, x)
+ mstore(add(mIn, 32), y)
+ mstore(add(mIn, 64), s)
+
+ success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+
+ mstore(add(mIn, 64), mload(pR))
+ mstore(add(mIn, 96), mload(add(pR, 32)))
+
+ success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)
+
+ if iszero(success) {
+ mstore(0, 0)
+ return(0, 0x20)
+ }
+ }
+
+ function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {
+ let _pPairing := add(pMem, pPairing)
+ let _pVk := add(pMem, pVk)
+
+ mstore(_pVk, IC0x)
+ mstore(add(_pVk, 32), IC0y)
+
+ // Compute the linear combination vk_x
+
+ g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))
+
+ g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))
+
+ g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))
+
+ g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))
+
+ g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))
+
+ g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))
+
+ g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))
+
+ g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))
+
+
+ // -A
+ mstore(_pPairing, calldataload(pA))
+ mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))
+
+ // B
+ mstore(add(_pPairing, 64), calldataload(pB))
+ mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
+ mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
+ mstore(add(_pPairing, 160), calldataload(add(pB, 96)))
+
+ // alpha1
+ mstore(add(_pPairing, 192), alphax)
+ mstore(add(_pPairing, 224), alphay)
+
+ // beta2
+ mstore(add(_pPairing, 256), betax1)
+ mstore(add(_pPairing, 288), betax2)
+ mstore(add(_pPairing, 320), betay1)
+ mstore(add(_pPairing, 352), betay2)
+
+ // vk_x
+ mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
+ mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))
+
+
+ // gamma2
+ mstore(add(_pPairing, 448), gammax1)
+ mstore(add(_pPairing, 480), gammax2)
+ mstore(add(_pPairing, 512), gammay1)
+ mstore(add(_pPairing, 544), gammay2)
+
+ // C
+ mstore(add(_pPairing, 576), calldataload(pC))
+ mstore(add(_pPairing, 608), calldataload(add(pC, 32)))
+
+ // delta2
+ mstore(add(_pPairing, 640), deltax1)
+ mstore(add(_pPairing, 672), deltax2)
+ mstore(add(_pPairing, 704), deltay1)
+ mstore(add(_pPairing, 736), deltay2)
+
+
+ let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)
+
+ isOk := and(success, mload(_pPairing))
+ }
+
+ let pMem := mload(0x40)
+ mstore(0x40, add(pMem, pLastMem))
+
+ // Validate that all evaluations ∈ F
+
+ checkField(calldataload(add(_pubSignals, 0)))
+
+ checkField(calldataload(add(_pubSignals, 32)))
+
+ checkField(calldataload(add(_pubSignals, 64)))
+
+ checkField(calldataload(add(_pubSignals, 96)))
+
+ checkField(calldataload(add(_pubSignals, 128)))
+
+ checkField(calldataload(add(_pubSignals, 160)))
+
+ checkField(calldataload(add(_pubSignals, 192)))
+
+ checkField(calldataload(add(_pubSignals, 224)))
+
+
+ // Validate all evaluations
+ let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)
+
+ mstore(0, isValid)
+ return(0, 0x20)
+ }
+ }
+ }
diff --git a/hardhat.config.ts b/hardhat.config.ts
index cd17e14..200515b 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -28,25 +28,25 @@ const config: HardhatUserConfig = {
],
},
networks: {
- "billions-main": {
+ "billions-mainnet": {
chainId: 45056,
url: `${process.env.BILLIONS_MAIN_RPC_URL}`,
// accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`],
},
- "billions-test": {
+ "billions-testnet": {
chainId: 6913,
url: `${process.env.BILLIONS_TEST_RPC_URL}`,
accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
// ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`],
},
- "privado-main": {
+ "privado-mainnet": {
chainId: 21000,
url: `${process.env.PRIVADO_MAIN_RPC_URL}`,
// accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`],
},
- "privado-test": {
+ "privado-testnet": {
chainId: 21001,
url: `${process.env.PRIVADO_TEST_RPC_URL}`,
// accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
@@ -100,7 +100,7 @@ const config: HardhatUserConfig = {
// accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`],
},
- "xlayer-test": {
+ "xlayer-testnet": {
chainId: 195,
url: `${process.env.XLAYER_TEST_RPC_URL}`,
accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS,
@@ -147,11 +147,12 @@ const config: HardhatUserConfig = {
"linea-sepolia": process.env.LINEA_EXPLORER_API_KEY || "",
"zkevm-cardona": process.env.ZKEVM_EXPLORER_API_KEY || "",
"zkevm-mainnet": process.env.ZKEVM_EXPLORER_API_KEY || "",
- "billions-test": "abc",
+ "billions-testnet": "abc",
+ "billions-mainnet": "abc",
},
customChains: [
{
- network: "billions-test",
+ network: "billions-testnet",
chainId: 6913,
urls: {
apiURL: "https://billions-testnet-blockscout.eu-north-2.gateway.fm/api/",
@@ -159,7 +160,7 @@ const config: HardhatUserConfig = {
},
},
{
- network: "billions-main",
+ network: "billions-mainnet",
chainId: 45056,
urls: {
apiURL: "https://billions-mainnet-blockscout.eu-north-2.gateway.fm/api/",
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json
new file mode 100644
index 0000000..ed09939
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json"
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json
new file mode 100644
index 0000000..67f55b0
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json
@@ -0,0 +1,45 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "Verifier_idcard_sha1",
+ "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha1.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[2]",
+ "name": "_pA",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "_pB",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_pC",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[8]",
+ "name": "_pubSignals",
+ "type": "uint256[8]"
+ }
+ ],
+ "name": "verifyProof",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json
new file mode 100644
index 0000000..ed09939
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json"
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json
new file mode 100644
index 0000000..e775393
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json
@@ -0,0 +1,45 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "Verifier_idcard_sha224",
+ "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha224.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[2]",
+ "name": "_pA",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "_pB",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_pC",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[8]",
+ "name": "_pubSignals",
+ "type": "uint256[8]"
+ }
+ ],
+ "name": "verifyProof",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json
new file mode 100644
index 0000000..ed09939
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json"
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json
new file mode 100644
index 0000000..a390864
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json
@@ -0,0 +1,45 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "Verifier_idcard_sha256",
+ "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha256.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[2]",
+ "name": "_pA",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "_pB",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_pC",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[8]",
+ "name": "_pubSignals",
+ "type": "uint256[8]"
+ }
+ ],
+ "name": "verifyProof",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json
new file mode 100644
index 0000000..ed09939
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json"
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json
new file mode 100644
index 0000000..d6902c8
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json
@@ -0,0 +1,45 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "Verifier_idcard_sha384",
+ "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha384.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[2]",
+ "name": "_pA",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "_pB",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_pC",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[8]",
+ "name": "_pubSignals",
+ "type": "uint256[8]"
+ }
+ ],
+ "name": "verifyProof",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json
new file mode 100644
index 0000000..ed09939
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json"
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json
new file mode 100644
index 0000000..745f011
--- /dev/null
+++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json
@@ -0,0 +1,45 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "Verifier_idcard_sha512",
+ "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha512.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[2]",
+ "name": "_pA",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "_pB",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "_pC",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[8]",
+ "name": "_pubSignals",
+ "type": "uint256[8]"
+ }
+ ],
+ "name": "verifyProof",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json b/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json
new file mode 100644
index 0000000..67f9599
--- /dev/null
+++ b/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json
@@ -0,0 +1,377309 @@
+{
+ "id": "159803f8228c1d0d30a9fa99e029a9f5",
+ "_format": "hh-sol-build-info-1",
+ "solcVersion": "0.8.27",
+ "solcLongVersion": "0.8.27+commit.40a35a09",
+ "input": {
+ "language": "Solidity",
+ "sources": {
+ "@iden3/contracts/interfaces/ICircuitValidator.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IState} from \"./IState.sol\";\n\n/**\n * @dev ICircuitValidator. Interface for circuit verification.\n */\ninterface ICircuitValidator {\n /**\n * @dev KeyToInputIndex. Information about public inputs of the circuit verification. Used in verify function.\n * @param key Name of the public input\n * @param inputIndex Index of the public input\n *\n * Note: Kept for backward compatibility. Now it's replaced by Signal struct for verifyV2 function.\n */\n struct KeyToInputIndex {\n string key;\n uint256 inputIndex;\n }\n\n /**\n * @dev Signal. Information about public signals of the circuit verification. Used in verifyV2 function.\n * @param name Name of the public signal\n * @param value Value of the public signal\n */\n struct Signal {\n string name;\n uint256 value;\n }\n\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Verify with the supported circuit informed in the request query data the groth16 proof\n * π=([πa]1,[πb]2,[πc]1) and that the proof was generated by the sender.\n * @param inputs Public inputs of the circuit.\n * @param a πa element of the groth16 proof.\n * @param b πb element of the groth16 proof.\n * @param c πc element of the groth16 proof.\n * @param data Request query data of the credential to verify.\n * @param sender Sender of the proof.\n * @return Array of key to public input index as result.\n */\n function verify(\n uint256[] memory inputs,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c,\n bytes calldata data,\n address sender\n ) external returns (ICircuitValidator.KeyToInputIndex[] memory);\n\n /**\n * @dev Verify with the supported circuit informed in the request query data the groth16 proof\n * packed as bytes and that the proof was generated by the sender.\n * @param zkProof Proof packed as bytes to verify.\n * @param data Request query data of the credential to verify.\n * @param sender Sender of the proof.\n * @param state State contract to get identities and gist states to check.\n * @return Array of public signals as result.\n */\n function verifyV2(\n bytes calldata zkProof,\n bytes calldata data,\n address sender,\n IState state\n ) external returns (ICircuitValidator.Signal[] memory);\n\n /**\n * @dev Get supported circuit ids.\n * @return ids Array of circuit ids supported.\n */\n function getSupportedCircuitIds() external view returns (string[] memory ids);\n\n /**\n * @dev Get the index of the public input of the circuit by name.\n * @param name Name of the public input.\n * @return Index of the public input.\n */\n function inputIndexOf(string memory name) external view returns (uint256);\n}\n"
+ },
+ "@iden3/contracts/interfaces/IIdentifiable.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/**\n * @dev IIdentifiable. Interface for identifiable entities.\n */\ninterface IIdentifiable {\n /**\n * @dev getId. Get id of the identity\n */\n function getId() external view returns (uint256);\n}\n"
+ },
+ "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\ninterface IOnchainCredentialStatusResolver {\n /**\n * @dev Struct of the node proof in the SMT.\n * @param root SMT root.\n * @param existence A flag, which shows if the leaf index exists in the SMT.\n * @param siblings An array of SMT sibling node hashes.\n * @param index An index of the leaf in the SMT.\n * @param value A value of the leaf in the SMT.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n * @param auxIndex An index of the auxiliary leaf in the SMT.\n * @param auxValue A value of the auxiliary leaf in the SMT.\n */\n struct Proof {\n uint256 root;\n bool existence;\n uint256[] siblings;\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n\n /**\n * @dev Struct to represent Identity State and it's Roots\n * @param state An identity state\n * @param claimsTreeRoot A root of the claims tree\n * @param revocationTreeRoot A root of the revocation tree\n * @param rootOfRoots A root of the roots tree\n */\n struct IdentityStateRoots {\n uint256 state;\n uint256 claimsTreeRoot;\n uint256 revocationTreeRoot;\n uint256 rootOfRoots;\n }\n\n /**\n * @dev Credential Status Struct\n * @param issuer Issuer's identity state and roots\n * @param mtp A Merkle Tree Proof of credential revocation or non-revocation\n */\n struct CredentialStatus {\n IdentityStateRoots issuer;\n Proof mtp;\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce\n * @param id Issuer's identifier\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatus(\n uint256 id,\n uint64 nonce\n ) external view returns (CredentialStatus memory);\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce, id and state\n * @param id Issuer's identifier\n * @param state of the Issuer\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatusByIdAndState(\n uint256 id,\n uint256 state,\n uint64 nonce\n ) external view returns (CredentialStatus memory);\n}\n"
+ },
+ "@iden3/contracts/interfaces/IState.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n// TODO changing this value don't forget to change GistProof.siblings array size\n// figure out how to reuse the constant in the array size\n// without compiler error\nuint256 constant MAX_SMT_DEPTH = 64;\n\ninterface IState {\n /**\n * @dev Struct for public interfaces to represent a state information.\n * @param id An identity.\n * @param state A state.\n * @param replacedByState A state, which replaced this state for the identity.\n * @param createdAtTimestamp A time when the state was created.\n * @param replacedAtTimestamp A time when the state was replaced by the next identity state.\n * @param createdAtBlock A block number when the state was created.\n * @param replacedAtBlock A block number when the state was replaced by the next identity state.\n */\n struct StateInfo {\n uint256 id;\n uint256 state;\n uint256 replacedByState;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent GIST root information.\n * @param root This GIST root.\n * @param replacedByRoot A root, which replaced this root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n * @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain.\n */\n struct GistRootInfo {\n uint256 root;\n uint256 replacedByRoot;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent GIST proof information.\n * @param root This GIST root.\n * @param existence A flag, which shows if the leaf index exists in the GIST.\n * @param siblings An array of GIST sibling node hashes.\n * @param index An index of the leaf in the GIST.\n * @param value A value of the leaf in the GIST.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the GIST.\n * @param auxIndex An index of the auxiliary leaf in the GIST.\n * @param auxValue An value of the auxiliary leaf in the GIST.\n */\n struct GistProof {\n uint256 root;\n bool existence;\n uint256[64] siblings; // TODO figure out the way how to use the MAX_SMT_DEPTH constant\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n /**\n * @dev Struct for signed identity states.\n * @param idStateMsg Message of the identity state.\n * @param signature Signature of the message.\n */\n struct IdentityStateUpdate {\n IdentityStateMessage idStateMsg;\n bytes signature;\n }\n /**\n * @dev Struct for signed global states.\n * @param globalStateMsg Message of the global state.\n * @param signature Signature of the message.\n */\n struct GlobalStateUpdate {\n GlobalStateMessage globalStateMsg;\n bytes signature;\n }\n /**\n * @dev Struct for identity state message.\n * @param timestamp Timestamp when the message was signed.\n * @param id Id of the identity.\n * @param state State of the identity.\n * @param replacedAtTimestamp Timestamp when the state was replaced by next identity state.\n */\n struct IdentityStateMessage {\n uint256 timestamp;\n uint256 id;\n uint256 state;\n uint256 replacedAtTimestamp;\n }\n\n /**\n * @dev Struct for global state message.\n * @param timestamp Timestamp when the message was signed.\n * @param idType Id type of the chain.\n * @param root Root of the global state.\n * @param replacedAtTimestamp Timestamp when the global state was replaced by next global state.\n */\n struct GlobalStateMessage {\n uint256 timestamp;\n bytes2 idType;\n uint256 root;\n uint256 replacedAtTimestamp;\n }\n /**\n * @dev Struct for cross chain proof.\n * @param proofType Proof type for the proof provided (\"stateProof\", \"globalStateProof\").\n * @param proof Cross chain proof.\n */\n struct CrossChainProof {\n string proofType;\n bytes proof;\n }\n\n /**\n * @dev Struct for global state process result.\n * @param idType Id type of the chain.\n * @param root Root of the global state.\n * @param replacedAtTimestamp Timestamp when the global state was replaced by next global state.\n */\n struct GlobalStateProcessResult {\n bytes2 idType;\n uint256 root;\n uint256 replacedAtTimestamp;\n }\n /**\n * @dev Struct for identity state process result.\n * @param id Id of the identity.\n * @param state State of the identity.\n * @param replacedAtTimestamp Timestamp when the identity state was replaced by next identity state.\n */\n struct IdentityStateProcessResult {\n uint256 id;\n uint256 state;\n uint256 replacedAtTimestamp;\n }\n\n /**\n * @dev Retrieve last state information of specific id.\n * @param id An identity.\n * @return The state info.\n */\n function getStateInfoById(uint256 id) external view returns (StateInfo memory);\n\n /**\n * @dev Retrieve state information by id and state.\n * @param id An identity.\n * @param state A state.\n * @return The state info.\n */\n function getStateInfoByIdAndState(\n uint256 id,\n uint256 state\n ) external view returns (StateInfo memory);\n\n /**\n * @dev Retrieve the specific GIST root information.\n * @param root GIST root.\n * @return The GIST root info.\n */\n function getGISTRootInfo(uint256 root) external view returns (GistRootInfo memory);\n\n /**\n * @dev Check if the id type supported.\n * @param idType id type.\n * @return True if the id type supported.\n */\n function isIdTypeSupported(bytes2 idType) external view returns (bool);\n\n /**\n * @dev Get id if the id type supported for the id, otherwise revert.\n * @param id An identity.\n * @return The id type.\n */\n function getIdTypeIfSupported(uint256 id) external view returns (bytes2);\n\n /**\n * @dev Get defaultIdType\n * @return defaultIdType\n */\n function getDefaultIdType() external view returns (bytes2);\n\n /**\n * @dev Performs state transition\n * @param id Identifier of the identity\n * @param oldState Previous state of the identity\n * @param newState New state of the identity\n * @param isOldStateGenesis Flag if previous identity state is genesis\n * @param a Proof.A\n * @param b Proof.B\n * @param c Proof.C\n */\n function transitState(\n uint256 id,\n uint256 oldState,\n uint256 newState,\n bool isOldStateGenesis,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c\n ) external;\n\n /**\n * @dev Performs state transition\n * @param id Identity\n * @param oldState Previous identity state\n * @param newState New identity state\n * @param isOldStateGenesis Is the previous state genesis?\n * @param methodId State transition method id\n * @param methodParams State transition method-specific params\n */\n function transitStateGeneric(\n uint256 id,\n uint256 oldState,\n uint256 newState,\n bool isOldStateGenesis,\n uint256 methodId,\n bytes calldata methodParams\n ) external;\n\n /**\n * @dev Check if identity exists.\n * @param id Identity\n * @return True if the identity exists\n */\n function idExists(uint256 id) external view returns (bool);\n\n /**\n * @dev Check if state exists.\n * @param id Identity\n * @param state State\n * @return True if the state exists\n */\n function stateExists(uint256 id, uint256 state) external view returns (bool);\n\n /**\n * @dev Get timestamp when the identity state was replaced.\n * @param id Identity\n * @param state State of the identity\n * @return replacedAtTimestamp Timestamp when the identity state was replaced by new identity state\n */\n function getStateReplacedAt(\n uint256 id,\n uint256 state\n ) external view returns (uint256 replacedAtTimestamp);\n\n /**\n * @dev Get timestamp when the global state was replaced.\n * @param idType Id type of the chain\n * @param root Root of the global state\n * @return replacedAtTimestamp Timestamp when the global state was replaced by new global state\n */\n function getGistRootReplacedAt(\n bytes2 idType,\n uint256 root\n ) external view returns (uint256 replacedAtTimestamp);\n\n /**\n * @dev Process the cross chain proofs with the identities and global states.\n * @param proofs Proofs with the identities and global states\n */\n function processCrossChainProofs(bytes calldata proofs) external;\n}\n"
+ },
+ "@iden3/contracts/interfaces/IZKPVerifier.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity 0.8.27;\n\nimport {ICircuitValidator} from \"./ICircuitValidator.sol\";\n\n/**\n * @dev IZKPVerifier. Interface for verification of groth16 proofs for validators circuits.\n */\ninterface IZKPVerifier {\n /**\n * @dev ZKPRequest. Structure for ZKP request.\n * @param metadata Metadata of the request.\n * @param validator Validator circuit.\n * @param data Data of the request.\n */\n struct ZKPRequest {\n string metadata;\n ICircuitValidator validator;\n bytes data;\n }\n /**\n * @dev ProofStatus. Structure for proof status.\n * @param isVerified True if the proof is verified.\n * @param validatorVersion Version of the validator.\n * @param blockNumber Block number of the proof.\n * @param blockTimestamp Block timestamp of the proof.\n */\n struct ProofStatus {\n bool isVerified;\n string validatorVersion;\n uint256 blockNumber;\n uint256 blockTimestamp;\n }\n\n /**\n * @dev ZKPResponse. Structure for ZKP response.\n * @param requestId Request id of the ZKP request.\n * @param zkProof ZKP proof to verify.\n * @param data Metadata of the request.\n */\n struct ZKPResponse {\n uint64 requestId;\n bytes zkProof;\n bytes data;\n }\n\n /**\n * @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n * @param requestId Request id of the ZKP request.\n * @param inputs Public inputs of the circuit.\n * @param a πa element of the groth16 proof.\n * @param b πb element of the groth16 proof.\n * @param c πc element of the groth16 proof.\n */\n function submitZKPResponse(\n uint64 requestId,\n uint256[] memory inputs,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c\n ) external;\n\n /**\n * @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n * @param responses The list of responses including ZKP request ID, ZK proof and metadata.\n * @param crossChainProofs The list of cross chain proofs from universal resolver (oracle).\n */\n function submitZKPResponseV2(\n ZKPResponse[] memory responses,\n bytes memory crossChainProofs\n ) external;\n\n /**\n * @dev Set the ZKP request for the requestId.\n * @param requestId Request id of the ZKP request.\n * @param request ZKP request to set.\n */\n function setZKPRequest(uint64 requestId, ZKPRequest calldata request) external;\n\n /**\n * @dev Get the ZKP request for the requestId.\n * @param requestId Request id of the ZKP request.\n * @return ZKP request.\n */\n function getZKPRequest(uint64 requestId) external view returns (ZKPRequest memory);\n\n /**\n * @dev Get the ZKP request count.\n * @return ZKP request count.\n */\n function getZKPRequestsCount() external view returns (uint256);\n\n /**\n * @dev Check if the requestId exists.\n * @param requestId Request id of the ZKP request.\n * @return True if the requestId exists.\n */\n function requestIdExists(uint64 requestId) external view returns (bool);\n\n /**\n * @dev Get the ZKP requests.\n * @param startIndex Start index of the ZKP requests.\n * @param length Length of the ZKP requests.\n * @return Array of the ZKP requests.\n */\n function getZKPRequests(\n uint256 startIndex,\n uint256 length\n ) external view returns (ZKPRequest[] memory);\n\n /**\n * @dev Get if proof is verified for the sender and ZKP request with requestId.\n * @param sender Sender of the proof.\n * @param requestId Request id of the ZKP Request to verify.\n * @return True if proof is verified for the sender and request id.\n */\n function isProofVerified(address sender, uint64 requestId) external view returns (bool);\n\n /**\n * @dev Get the proof status for the sender and ZKP request with requestId.\n * @param sender Sender of the proof.\n * @param requestId Request id of the proof.\n * @return Proof status.\n */\n function getProofStatus(\n address sender,\n uint64 requestId\n ) external view returns (ProofStatus memory);\n\n /**\n * @dev Get the proof storage field for the user, requestId and key.\n * @param user User address.\n * @param requestId Request id of the proof.\n * @param key Key of the proof storage field.\n * @return Proof storage field.\n */\n function getProofStorageField(\n address user,\n uint64 requestId,\n string memory key\n ) external view returns (uint256);\n}\n"
+ },
+ "@iden3/contracts/lib/ArrayUtils.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/// @title A common functions for arrays.\nlibrary ArrayUtils {\n /**\n * @dev Calculates bounds for the slice of the array.\n * @param arrLength An array length.\n * @param start A start index.\n * @param length A length of the slice.\n * @param limit A limit for the length.\n * @return The bounds for the slice of the array.\n */\n function calculateBounds(\n uint256 arrLength,\n uint256 start,\n uint256 length,\n uint256 limit\n ) internal pure returns (uint256, uint256) {\n require(length > 0, \"Length should be greater than 0\");\n require(length <= limit, \"Length limit exceeded\");\n require(start < arrLength, \"Start index out of bounds\");\n\n uint256 end = start + length;\n if (end > arrLength) {\n end = arrLength;\n }\n\n return (start, end);\n }\n}\n"
+ },
+ "@iden3/contracts/lib/GenesisUtils.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {PrimitiveTypeUtils} from \"./PrimitiveTypeUtils.sol\";\n\nlibrary GenesisUtils {\n /**\n * @dev sum\n */\n function sum(bytes memory array) internal pure returns (uint16 s) {\n require(array.length == 29, \"Checksum requires 29 length array\");\n\n for (uint256 i = 0; i < array.length; ++i) {\n s += uint16(uint8(array[i]));\n }\n }\n\n /**\n * @dev isGenesisState\n */\n function isGenesisState(uint256 id, uint256 idState) internal pure returns (bool) {\n bytes2 idType = getIdType(id);\n uint256 computedId = calcIdFromGenesisState(idType, idState);\n return id == computedId;\n }\n\n /**\n * @dev getIdType\n */\n function getIdType(uint256 id) internal pure returns (bytes2) {\n return bytes2(PrimitiveTypeUtils.uint256ToBytes(PrimitiveTypeUtils.reverseUint256(id)));\n }\n\n /**\n * @dev calcIdFromGenesisState\n */\n function calcIdFromGenesisState(\n bytes2 idType,\n uint256 idState\n ) internal pure returns (uint256) {\n bytes memory userStateB1 = PrimitiveTypeUtils.uint256ToBytes(\n PrimitiveTypeUtils.reverseUint256(idState)\n );\n\n bytes memory cutState = PrimitiveTypeUtils.slice(userStateB1, userStateB1.length - 27, 27);\n bytes memory beforeChecksum = PrimitiveTypeUtils.concat(abi.encodePacked(idType), cutState);\n\n uint16 checksum = PrimitiveTypeUtils.reverseUint16(sum(beforeChecksum));\n bytes memory checkSumBytes = abi.encodePacked(checksum);\n\n bytes memory idBytes = PrimitiveTypeUtils.concat(beforeChecksum, checkSumBytes);\n require(idBytes.length == 31, \"idBytes requires 31 length array\");\n\n return PrimitiveTypeUtils.reverseUint256(PrimitiveTypeUtils.padRightToUint256(idBytes));\n }\n\n /**\n * @dev calcIdFromEthAddress\n */\n function calcIdFromEthAddress(bytes2 idType, address caller) internal pure returns (uint256) {\n uint256 addr = PrimitiveTypeUtils.addressToUint256(caller);\n\n return calcIdFromGenesisState(idType, PrimitiveTypeUtils.reverseUint256(addr));\n }\n}\n"
+ },
+ "@iden3/contracts/lib/IdentityBase.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IIdentifiable} from \"../interfaces/IIdentifiable.sol\";\nimport {IOnchainCredentialStatusResolver} from \"../interfaces/IOnchainCredentialStatusResolver.sol\";\nimport {IdentityLib} from \"../lib/IdentityLib.sol\";\nimport {SmtLib} from \"../lib/SmtLib.sol\";\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\n// /**\n// * @dev Contract managing onchain identity\n// */\nabstract contract IdentityBase is IIdentifiable, IOnchainCredentialStatusResolver, ERC165 {\n using IdentityLib for IdentityLib.Data;\n\n /// @dev Main storage structure for the contract\n struct IdentityBaseStorage {\n IdentityLib.Data identity;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"iden3.storage.IdentityBase\")) - 1))\n // & ~bytes32(uint256(0xff));\n bytes32 private constant IdentityBaseStorageLocation =\n 0x3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba400;\n\n /// @dev Get the main storage using assembly to ensure specific storage location\n function _getIdentityBaseStorage() internal pure returns (IdentityBaseStorage storage $) {\n assembly {\n $.slot := IdentityBaseStorageLocation\n }\n }\n\n /**\n * @dev Get configured Identity SMT depth.\n * @return depth of the SMT\n */\n function getSmtDepth() public pure virtual returns (uint256) {\n return 40;\n }\n\n /**\n * @dev Initialization of IdentityLib library\n * @param _stateContractAddr - address of the State contract\n */\n function initialize(address _stateContractAddr, bytes2 idType) public virtual {\n _getIdentityBaseStorage().identity.initialize(\n _stateContractAddr,\n address(this),\n getSmtDepth(),\n idType\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProof(\n uint256 claimIndexHash\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getClaimProof(claimIndexHash);\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\n */\n function getClaimProofWithStateInfo(\n uint256 claimIndexHash\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getClaimProofWithStateInfo(claimIndexHash);\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n * @param claimIndexHash - hash of Claim Index\n * @param root - root of the tree\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProofByRoot(\n uint256 claimIndexHash,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getClaimProofByRoot(claimIndexHash, root);\n }\n\n /**\n * @dev Retrieve ClaimsTree latest root.\n * @return The latest ClaimsTree root\n */\n function getClaimsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getClaimsTreeRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\n */\n function getRevocationProof(\n uint64 revocationNonce\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRevocationProof(revocationNonce);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\n */\n function getRevocationProofWithStateInfo(\n uint64 revocationNonce\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getRevocationProofWithStateInfo(revocationNonce);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n * @param revocationNonce - revocation nonce\n * @param root - root of the tree\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\n */\n function getRevocationProofByRoot(\n uint64 revocationNonce,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRevocationProofByRoot(revocationNonce, root);\n }\n\n /**\n * @dev Retrieve RevocationsTree latest root.\n * @return The latest RevocationsTree root\n */\n function getRevocationsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getRevocationsTreeRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root\n */\n function getRootProof(uint256 rootsTreeRoot) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRootProof(rootsTreeRoot);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\n */\n function getRootProofWithStateInfo(\n uint256 rootsTreeRoot\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getRootProofWithStateInfo(rootsTreeRoot);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n * @param claimsTreeRoot - claims tree root\n * @param root - root of the tree\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root\n */\n function getRootProofByRoot(\n uint256 claimsTreeRoot,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRootProofByRoot(claimsTreeRoot, root);\n }\n\n /**\n * @dev Retrieve RootsTree latest root.\n * @return The latest RootsTree root\n */\n function getRootsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getRootsTreeRoot();\n }\n\n /**\n * @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n * by state\n * @param state identity state\n * @return set of roots\n */\n function getRootsByState(uint256 state) public view virtual returns (IdentityLib.Roots memory) {\n return _getIdentityBaseStorage().identity.getRootsByState(state);\n }\n\n /**\n * @dev returns identity Id\n * @return uint256 Id\n */\n function getId() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.id;\n }\n\n /**\n * @dev returns isOldStateGenesis flag\n * @return bool isOldStateGenesis\n */\n function getIsOldStateGenesis() public view returns (bool) {\n return _getIdentityBaseStorage().identity.isOldStateGenesis;\n }\n\n /**\n * @dev returns latest published claims tree root\n * @return claimsRoot\n */\n function getLatestPublishedClaimsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.claimsRoot;\n }\n\n /**\n * @dev returns latest published revocation tree root\n * @return revocationsRoot\n */\n function getLatestPublishedRevocationsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.revocationsRoot;\n }\n\n /**\n * @dev returns latest published roots tree root\n * @return rootsRoot\n */\n function getLatestPublishedRootsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.rootsRoot;\n }\n\n /**\n * @dev returns identity latest state\n * @return uint256 identityLatestState\n */\n function getLatestPublishedState() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedState;\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce\n * @param id Issuer's identifier\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatus(\n uint256 id,\n uint64 nonce\n ) public view returns (CredentialStatus memory) {\n uint256 latestState = _getIdentityBaseStorage().identity.latestPublishedState;\n return getRevocationStatusByIdAndState(id, latestState, nonce);\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce, id and state\n * @param id Issuer's identifier\n * @param state of the Issuer\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatusByIdAndState(\n uint256 id,\n uint256 state,\n uint64 nonce\n ) public view returns (CredentialStatus memory) {\n require(id == _getIdentityBaseStorage().identity.id, \"Identity id mismatch\");\n IdentityLib.Roots memory historicalStates = _getIdentityBaseStorage()\n .identity\n .getRootsByState(state);\n IdentityStateRoots memory issuerStates = IdentityStateRoots({\n state: state,\n rootOfRoots: historicalStates.rootsRoot,\n claimsTreeRoot: historicalStates.claimsRoot,\n revocationTreeRoot: historicalStates.revocationsRoot\n });\n\n SmtLib.Proof memory p = _getIdentityBaseStorage().identity.getRevocationProofByRoot(\n nonce,\n historicalStates.revocationsRoot\n );\n Proof memory mtp = Proof({\n root: p.root,\n existence: p.existence,\n siblings: p.siblings,\n index: p.index,\n value: p.value,\n auxExistence: p.auxExistence,\n auxIndex: p.auxIndex,\n auxValue: p.auxValue\n });\n\n return CredentialStatus({issuer: issuerStates, mtp: mtp});\n }\n\n /**\n * @dev supportsInterface. Check if the contract supports the interface\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return\n interfaceId == type(IIdentifiable).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"
+ },
+ "@iden3/contracts/lib/IdentityLib.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IState} from \"../interfaces/IState.sol\";\nimport {SmtLib} from \"../lib/SmtLib.sol\";\nimport {PoseidonUnit3L, PoseidonUnit4L} from \"../lib/Poseidon.sol\";\nimport {GenesisUtils} from \"../lib/GenesisUtils.sol\";\n\n// /**\n// * @dev Contract managing onchain identity\n// */\nlibrary IdentityLib {\n using SmtLib for SmtLib.Data;\n\n uint256 public constant IDENTITY_MAX_SMT_DEPTH = 40;\n\n /**\n * @dev Data\n * Id\n * Identity latest state\n * Is old state genesis flag\n * State contract\n * Mapping of roots by state\n * Trees\n * Last tree roots\n */\n struct Data {\n uint256 id;\n uint256 latestPublishedState;\n bool isOldStateGenesis;\n IState stateContract;\n mapping(uint256 => Roots) rootsByState;\n Trees trees;\n Roots latestPublishedTreeRoots;\n // This empty reserved space is put in place to allow future versions\n // of the SMT library to add new Data struct fields without shifting down\n // storage of upgradable contracts that use this struct as a state variable\n // (see https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#storage-gaps)\n uint256[43] __gap;\n }\n\n /**\n * @dev SMT addresses\n */\n struct Trees {\n SmtLib.Data claimsTree;\n SmtLib.Data revocationsTree;\n SmtLib.Data rootsTree;\n }\n\n /**\n * @dev set of roots\n */\n struct Roots {\n uint256 claimsRoot;\n uint256 revocationsRoot;\n uint256 rootsRoot;\n }\n\n /**\n * @dev state info\n */\n struct StateInfo {\n uint256 state;\n uint256 claimsRoot;\n uint256 revocationsRoot;\n uint256 rootsRoot;\n }\n\n /**\n * @dev Initialization of the library state variables\n * @param _stateContractAddr - address of the State contract\n * @param _identityAddr - address of the Identity contract, which calls this function\n * @param depth - depth of identity SMTs\n * @param idType - idType\n */\n function initialize(\n Data storage self,\n address _stateContractAddr,\n address _identityAddr,\n uint256 depth,\n bytes2 idType\n ) external {\n require(depth <= IDENTITY_MAX_SMT_DEPTH, \"SMT depth is greater than max allowed depth\");\n self.stateContract = IState(_stateContractAddr);\n require(self.stateContract.isIdTypeSupported(idType), \"id type is not supported\");\n self.isOldStateGenesis = true;\n self.trees.claimsTree.initialize(depth);\n self.trees.revocationsTree.initialize(depth);\n self.trees.rootsTree.initialize(depth);\n self.id = GenesisUtils.calcIdFromEthAddress(idType, _identityAddr);\n }\n\n /**\n * @dev Add claim\n * @param claim - claim data\n */\n function addClaim(Data storage self, uint256[8] calldata claim) external {\n uint256[4] memory claimIndex;\n uint256[4] memory claimValue;\n for (uint8 i = 0; i < 4; i++) {\n claimIndex[i] = claim[i];\n claimValue[i] = claim[i + 4];\n }\n uint256 hashIndex = PoseidonUnit4L.poseidon(claimIndex);\n uint256 hashValue = PoseidonUnit4L.poseidon(claimValue);\n self.trees.claimsTree.addLeaf(hashIndex, hashValue);\n }\n\n /**\n * @dev Add claim hash\n * @param hashIndex - hash of claim index part\n * @param hashValue - hash of claim value part\n */\n function addClaimHash(Data storage self, uint256 hashIndex, uint256 hashValue) external {\n self.trees.claimsTree.addLeaf(hashIndex, hashValue);\n }\n\n /**\n * @dev Revoke claim using it's revocationNonce\n * @param revocationNonce - revocation nonce\n */\n function revokeClaim(Data storage self, uint64 revocationNonce) external {\n self.trees.revocationsTree.addLeaf(uint256(revocationNonce), 0);\n }\n\n /**\n * @dev Make state transition\n */\n function transitState(Data storage self) external {\n uint256 oldIdentityState = self.latestPublishedState;\n uint256 currentClaimsTreeRoot = self.trees.claimsTree.getRoot();\n uint256 currentRevocationsTreeRoot = self.trees.revocationsTree.getRoot();\n uint256 currentRootsTreeRoot = self.trees.rootsTree.getRoot();\n\n require(\n (self.latestPublishedTreeRoots.claimsRoot != currentClaimsTreeRoot) ||\n (self.latestPublishedTreeRoots.revocationsRoot != currentRevocationsTreeRoot) ||\n (self.latestPublishedTreeRoots.rootsRoot != currentRootsTreeRoot),\n \"Identity trees haven't changed\"\n );\n\n // if claimsTreeRoot changed, then add it to rootsTree\n if (self.latestPublishedTreeRoots.claimsRoot != currentClaimsTreeRoot) {\n self.trees.rootsTree.addLeaf(currentClaimsTreeRoot, 0);\n }\n\n uint256 newIdentityState = calcIdentityState(self);\n\n // update internal state vars\n self.latestPublishedState = newIdentityState;\n self.latestPublishedTreeRoots.claimsRoot = currentClaimsTreeRoot;\n self.latestPublishedTreeRoots.revocationsRoot = currentRevocationsTreeRoot;\n self.latestPublishedTreeRoots.rootsRoot = self.trees.rootsTree.getRoot();\n\n bool isOldStateGenesis = self.isOldStateGenesis;\n // it may have changed since we've got currentRootsTreeRoot\n // related to the documentation set isOldStateGenesis to false each time is faster and cheaper\n // https://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-YAUCcNK950dUzMQPMJBxRtGCqs/edit#gid=0\n self.isOldStateGenesis = false;\n\n writeHistory(\n self,\n self.latestPublishedState,\n Roots({\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n\n // do state transition in State Contract\n self.stateContract.transitStateGeneric(\n self.id,\n oldIdentityState,\n newIdentityState,\n isOldStateGenesis,\n 1, // state transition method id: 1 - using ethereum auth\n new bytes(0) // empty method params\n );\n }\n\n /**\n * @dev Calculate IdentityState\n * @return IdentityState\n */\n function calcIdentityState(Data storage self) public view returns (uint256) {\n return\n PoseidonUnit3L.poseidon(\n [\n self.trees.claimsTree.getRoot(),\n self.trees.revocationsTree.getRoot(),\n self.trees.rootsTree.getRoot()\n ]\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n * Note that proof is taken for the latest published claims tree root.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProof(\n Data storage self,\n uint256 claimIndexHash\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.claimsTree.getProofByRoot(\n claimIndexHash,\n self.latestPublishedTreeRoots.claimsRoot\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n * Note that proof is taken for the latest published claims tree root.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info\n */\n function getClaimProofWithStateInfo(\n Data storage self,\n uint256 claimIndexHash\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.claimsTree.getProofByRoot(\n claimIndexHash,\n self.latestPublishedTreeRoots.claimsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n * @param claimIndexHash - hash of Claim Index\n * @param root - root of the tree\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProofByRoot(\n Data storage self,\n uint256 claimIndexHash,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.claimsTree.getProofByRoot(claimIndexHash, root);\n }\n\n /**\n * @dev Retrieve ClaimsTree latest root.\n * @return The latest ClaimsTree root\n */\n function getClaimsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.claimsTree.getRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n Note that proof is taken for the latest published revocation tree root.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim\n */\n function getRevocationProof(\n Data storage self,\n uint64 revocationNonce\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.revocationsTree.getProofByRoot(\n uint256(revocationNonce),\n self.latestPublishedTreeRoots.revocationsRoot\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n Note that proof is taken for the latest published revocation tree root.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim and state info.\n */\n function getRevocationProofWithStateInfo(\n Data storage self,\n uint64 revocationNonce\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.revocationsTree.getProofByRoot(\n uint256(revocationNonce),\n self.latestPublishedTreeRoots.revocationsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n * @param revocationNonce - revocation nonce\n * @param root - root of the tree\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim\n */\n function getRevocationProofByRoot(\n Data storage self,\n uint64 revocationNonce,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.revocationsTree.getProofByRoot(uint256(revocationNonce), root);\n }\n\n /**\n * @dev Retrieve RevocationsTree latest root.\n * @return The latest RevocationsTree root\n */\n function getRevocationsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.revocationsTree.getRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n Note that proof is taken for the latest published roots tree root.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root\n */\n function getRootProof(\n Data storage self,\n uint256 rootsTreeRoot\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.rootsTree.getProofByRoot(\n rootsTreeRoot,\n self.latestPublishedTreeRoots.rootsRoot\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot and state info.\n Note that proof is taken for the latest published roots tree root.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root and state info.\n */\n function getRootProofWithStateInfo(\n Data storage self,\n uint256 rootsTreeRoot\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.rootsTree.getProofByRoot(\n rootsTreeRoot,\n self.latestPublishedTreeRoots.rootsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n * @param claimsTreeRoot - claims tree root\n * @param root - root of the tree\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root\n */\n function getRootProofByRoot(\n Data storage self,\n uint256 claimsTreeRoot,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.rootsTree.getProofByRoot(claimsTreeRoot, root);\n }\n\n /**\n * @dev Retrieve RootsTree latest root.\n * @return The latest RootsTree root\n */\n function getRootsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.rootsTree.getRoot();\n }\n\n /**\n * @dev write roots to history by state\n * @param self identity\n * @param state identity state\n * @param roots set of roots\n */\n function writeHistory(Data storage self, uint256 state, Roots memory roots) internal {\n require(\n self.rootsByState[state].claimsRoot == 0 &&\n self.rootsByState[state].revocationsRoot == 0 &&\n self.rootsByState[state].rootsRoot == 0,\n \"Roots for this state already exist\"\n );\n self.rootsByState[state] = roots;\n }\n\n /**\n * @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n * by state\n * @param state identity state\n * @return set of roots\n */\n function getRootsByState(\n Data storage self,\n uint256 state\n ) external view returns (Roots memory) {\n require(\n self.rootsByState[state].claimsRoot != 0 ||\n self.rootsByState[state].revocationsRoot != 0 ||\n self.rootsByState[state].rootsRoot != 0,\n \"Roots for this state doesn't exist\"\n );\n return self.rootsByState[state];\n }\n}\n"
+ },
+ "@iden3/contracts/lib/Poseidon.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nlibrary PoseidonUnit1L {\n function poseidon(uint256[1] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit2L {\n function poseidon(uint256[2] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit3L {\n function poseidon(uint256[3] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit4L {\n function poseidon(uint256[4] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit5L {\n function poseidon(uint256[5] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit6L {\n function poseidon(uint256[6] calldata) public pure returns (uint256) {}\n}\n\nlibrary SpongePoseidon {\n uint32 internal constant BATCH_SIZE = 6;\n\n function hash(uint256[] memory values) public pure returns (uint256) {\n uint256[BATCH_SIZE] memory frame = [uint256(0), 0, 0, 0, 0, 0];\n bool dirty = false;\n uint256 fullHash = 0;\n uint32 k = 0;\n for (uint32 i = 0; i < values.length; i++) {\n dirty = true;\n frame[k] = values[i];\n if (k == BATCH_SIZE - 1) {\n fullHash = PoseidonUnit6L.poseidon(frame);\n dirty = false;\n frame = [uint256(0), 0, 0, 0, 0, 0];\n frame[0] = fullHash;\n k = 1;\n } else {\n k++;\n }\n }\n if (dirty) {\n // we haven't hashed something in the main sponge loop and need to do hash here\n fullHash = PoseidonUnit6L.poseidon(frame);\n }\n return fullHash;\n }\n}\n\nlibrary PoseidonFacade {\n function poseidon1(uint256[1] calldata el) public pure returns (uint256) {\n return PoseidonUnit1L.poseidon(el);\n }\n\n function poseidon2(uint256[2] calldata el) public pure returns (uint256) {\n return PoseidonUnit2L.poseidon(el);\n }\n\n function poseidon3(uint256[3] calldata el) public pure returns (uint256) {\n return PoseidonUnit3L.poseidon(el);\n }\n\n function poseidon4(uint256[4] calldata el) public pure returns (uint256) {\n return PoseidonUnit4L.poseidon(el);\n }\n\n function poseidon5(uint256[5] calldata el) public pure returns (uint256) {\n return PoseidonUnit5L.poseidon(el);\n }\n\n function poseidon6(uint256[6] calldata el) public pure returns (uint256) {\n return PoseidonUnit6L.poseidon(el);\n }\n\n function poseidonSponge(uint256[] calldata el) public pure returns (uint256) {\n return SpongePoseidon.hash(el);\n }\n}\n"
+ },
+ "@iden3/contracts/lib/PrimitiveTypeUtils.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {BytesLib} from \"solidity-bytes-utils/contracts/BytesLib.sol\";\n\nlibrary PrimitiveTypeUtils {\n /**\n * @dev uint256ToBytes\n */\n function uint256ToBytes(uint256 x) internal pure returns (bytes memory b) {\n b = new bytes(32);\n assembly {\n mstore(add(b, 32), x)\n }\n }\n\n /**\n * @dev reverse uint256\n */\n function reverseUint256(uint256 input) internal pure returns (uint256 v) {\n v = input;\n\n // swap bytes\n v =\n ((v & 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00) >> 8) |\n ((v & 0x00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF) << 8);\n\n // swap 2-byte long pairs\n v =\n ((v & 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000) >> 16) |\n ((v & 0x0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF) << 16);\n\n // swap 4-byte long pairs\n v =\n ((v & 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000) >> 32) |\n ((v & 0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF) << 32);\n\n // swap 8-byte long pairs\n v =\n ((v & 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000) >> 64) |\n ((v & 0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF) << 64);\n\n // swap 16-byte long pairs\n v = (v >> 128) | (v << 128);\n }\n\n /**\n * @dev reverse uint16\n */\n function reverseUint16(uint16 input) internal pure returns (uint16 v) {\n v = input;\n\n // swap bytes\n v = (v >> 8) | (v << 8);\n }\n\n /**\n * @dev reverse uint32\n */\n function reverseUint32(uint32 input) internal pure returns (uint32 v) {\n v = input;\n\n // swap bytes\n v = ((v & 0xFF00FF00) >> 8) | ((v & 0x00FF00FF) << 8);\n\n // swap 2-byte long pairs\n v = (v >> 16) | (v << 16);\n }\n\n /**\n * @dev compareStrings\n */\n function compareStrings(string memory a, string memory b) internal pure returns (bool) {\n if (bytes(a).length != bytes(b).length) {\n return false;\n }\n return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b))));\n }\n\n /**\n * @dev padRightToUint256 shift left 12 bytes\n * @param b, bytes array with max length 32, other bytes are cut. e.g. 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * @return value e.g 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n */\n function padRightToUint256(bytes memory b) internal pure returns (uint256 value) {\n return uint256(bytes32(b));\n }\n\n /**\n * @dev bytesToAddress\n */\n function bytesToAddress(bytes memory bys) internal pure returns (address addr) {\n assembly {\n addr := mload(add(bys, 20))\n }\n }\n\n /**\n * @dev concat\n */\n function concat(\n bytes memory preBytes,\n bytes memory postBytes\n ) internal pure returns (bytes memory) {\n return BytesLib.concat(preBytes, postBytes);\n }\n\n /**\n * @dev slice\n */\n function slice(\n bytes memory bys,\n uint256 start,\n uint256 length\n ) internal pure returns (bytes memory) {\n return BytesLib.slice(bys, start, length);\n }\n\n /**\n * @dev addressToUint256 converts address to uint256 which lower 20 bytes\n * is an address in Big Endian\n * @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to uint160\n * @return uint256 representation of address 1390849295786071768276380950238675083608645509734\n */\n function addressToUint256(address _addr) internal pure returns (uint256) {\n return uint256(uint160(_addr));\n }\n\n /**\n * @dev uint256ToAddress converts uint256 which lower 20 bytes\n * is an address in Big Endian to address\n * @param input uint256 e.g. 1390849295786071768276380950238675083608645509734\n * which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to address\n * @return address representation of uint256 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n */\n function uint256ToAddress(uint256 input) internal pure returns (address) {\n require(\n input == uint256(uint160(input)),\n \"given input is not a representation of address, 12 most significant bytes should be zero\"\n );\n return address(uint160(input));\n }\n\n /**\n * @dev addressToChallenge converts address to uint256 which lower 20 bytes\n * are representation of address in LittleEndian\n * @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * addressToBytes: 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266\n * padRightToUint256: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000,\n * reverseUint256 result: 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n * @return uint256: 583091486781463398742321306787801699791102451699\n */\n function addressToUint256LE(address _addr) internal pure returns (uint256) {\n return reverseUint256(padRightToUint256(addressToBytes(_addr)));\n }\n\n /**\n * @dev uint256LEtoAddress - converts uint256 which 20 lower bytes\n * are representation of address in LE to address\n * @param input is uint256 which is created from bytes in LittleEndian:\n * eg. 583091486781463398742321306787801699791102451699\n * or 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n * reverseUint256 result: 110194434039389003190498847789203126033799499726478230611233094447786700570624\n * uint256ToBytes result: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n * @return address - 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n */\n function uint256LEToAddress(uint256 input) internal pure returns (address) {\n require(\n input == uint256(uint160(input)),\n \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\"\n );\n return bytesToAddress(uint256ToBytes(reverseUint256(input)));\n }\n\n function addressToBytes(address a) internal pure returns (bytes memory) {\n return abi.encodePacked(a);\n }\n}\n"
+ },
+ "@iden3/contracts/lib/SmtLib.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {PoseidonUnit2L, PoseidonUnit3L} from \"./Poseidon.sol\";\nimport {ArrayUtils} from \"./ArrayUtils.sol\";\n\n/// @title A sparse merkle tree implementation, which keeps tree history.\n// Note that this SMT implementation can manage duplicated roots in the history,\n// which may happen when some leaf change its value and then changes it back to the original value.\n// Leaves deletion is not supported, although it should be possible to implement it in the future\n// versions of this library, without changing the existing state variables\n// In this way all the SMT data may be preserved for the contracts already in production.\nlibrary SmtLib {\n /**\n * @dev Max return array length for SMT root history requests\n */\n uint256 public constant ROOT_INFO_LIST_RETURN_LIMIT = 1000;\n\n /**\n * @dev Max depth hard cap for SMT\n * We can't use depth > 256 because of bits number limitation in the uint256 data type.\n */\n uint256 public constant MAX_DEPTH_HARD_CAP = 256;\n\n /**\n * @dev Enum of SMT node types\n */\n enum NodeType {\n EMPTY,\n LEAF,\n MIDDLE\n }\n\n /**\n * @dev Sparse Merkle Tree data\n * Note that we count the SMT depth starting from 0, which is the root level.\n *\n * For example, the following tree has a maxDepth = 2:\n *\n * O <- root level (depth = 0)\n * / \\\n * O O <- depth = 1\n * / \\ / \\\n * O O O O <- depth = 2\n */\n struct Data {\n mapping(uint256 => Node) nodes;\n RootEntry[] rootEntries;\n mapping(uint256 => uint256[]) rootIndexes; // root => rootEntryIndex[]\n uint256 maxDepth;\n bool initialized;\n // This empty reserved space is put in place to allow future versions\n // of the SMT library to add new Data struct fields without shifting down\n // storage of upgradable contracts that use this struct as a state variable\n // (see https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#storage-gaps)\n uint256[45] __gap;\n }\n\n /**\n * @dev Struct of the node proof in the SMT.\n * @param root This SMT root.\n * @param existence A flag, which shows if the leaf index exists in the SMT.\n * @param siblings An array of SMT sibling node hashes.\n * @param index An index of the leaf in the SMT.\n * @param value A value of the leaf in the SMT.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n * @param auxIndex An index of the auxiliary leaf in the SMT.\n * @param auxValue An value of the auxiliary leaf in the SMT.\n */\n struct Proof {\n uint256 root;\n bool existence;\n uint256[] siblings;\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n\n /**\n * @dev Struct for SMT root internal storage representation.\n * @param root SMT root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n */\n struct RootEntry {\n uint256 root;\n uint256 createdAtTimestamp;\n uint256 createdAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent SMT root info.\n * @param root This SMT root.\n * @param replacedByRoot A root, which replaced this root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n * @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain.\n */\n struct RootEntryInfo {\n uint256 root;\n uint256 replacedByRoot;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct of SMT node.\n * @param NodeType type of node.\n * @param childLeft left child of node.\n * @param childRight right child of node.\n * @param Index index of node.\n * @param Value value of node.\n */\n struct Node {\n NodeType nodeType;\n uint256 childLeft;\n uint256 childRight;\n uint256 index;\n uint256 value;\n }\n\n using BinarySearchSmtRoots for Data;\n using ArrayUtils for uint256[];\n\n /**\n * @dev Reverts if root does not exist in SMT roots history.\n * @param root SMT root.\n */\n modifier onlyExistingRoot(Data storage self, uint256 root) {\n require(rootExists(self, root), \"Root does not exist\");\n _;\n }\n\n /**\n * @dev Add a leaf to the SMT\n * @param i Index of a leaf\n * @param v Value of a leaf\n */\n function addLeaf(Data storage self, uint256 i, uint256 v) external onlyInitialized(self) {\n Node memory node = Node({\n nodeType: NodeType.LEAF,\n childLeft: 0,\n childRight: 0,\n index: i,\n value: v\n });\n\n uint256 prevRoot = getRoot(self);\n uint256 newRoot = _addLeaf(self, node, prevRoot, 0);\n\n _addEntry(self, newRoot, block.timestamp, block.number);\n }\n\n /**\n * @dev Get SMT root history length\n * @return SMT history length\n */\n function getRootHistoryLength(Data storage self) external view returns (uint256) {\n return self.rootEntries.length;\n }\n\n /**\n * @dev Get SMT root history\n * @param startIndex start index of history\n * @param length history length\n * @return array of RootEntryInfo structs\n */\n function getRootHistory(\n Data storage self,\n uint256 startIndex,\n uint256 length\n ) external view returns (RootEntryInfo[] memory) {\n (uint256 start, uint256 end) = ArrayUtils.calculateBounds(\n self.rootEntries.length,\n startIndex,\n length,\n ROOT_INFO_LIST_RETURN_LIMIT\n );\n\n RootEntryInfo[] memory result = new RootEntryInfo[](end - start);\n\n for (uint256 i = start; i < end; i++) {\n result[i - start] = _getRootInfoByIndex(self, i);\n }\n return result;\n }\n\n /**\n * @dev Get the SMT node by hash\n * @param nodeHash Hash of a node\n * @return A node struct\n */\n function getNode(Data storage self, uint256 nodeHash) public view returns (Node memory) {\n return self.nodes[nodeHash];\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT.\n * @param index A node index.\n * @return SMT proof struct.\n */\n function getProof(Data storage self, uint256 index) external view returns (Proof memory) {\n return getProofByRoot(self, index, getRoot(self));\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT for some historical tree state.\n * @param index A node index\n * @param historicalRoot Historical SMT roof to get proof for.\n * @return Proof struct.\n */\n function getProofByRoot(\n Data storage self,\n uint256 index,\n uint256 historicalRoot\n ) public view onlyExistingRoot(self, historicalRoot) returns (Proof memory) {\n uint256[] memory siblings = new uint256[](self.maxDepth);\n // Solidity does not guarantee that memory vars are zeroed out\n for (uint256 i = 0; i < self.maxDepth; i++) {\n siblings[i] = 0;\n }\n\n Proof memory proof = Proof({\n root: historicalRoot,\n existence: false,\n siblings: siblings,\n index: index,\n value: 0,\n auxExistence: false,\n auxIndex: 0,\n auxValue: 0\n });\n\n uint256 nextNodeHash = historicalRoot;\n Node memory node;\n\n for (uint256 i = 0; i <= self.maxDepth; i++) {\n node = getNode(self, nextNodeHash);\n if (node.nodeType == NodeType.EMPTY) {\n break;\n } else if (node.nodeType == NodeType.LEAF) {\n if (node.index == proof.index) {\n proof.existence = true;\n proof.value = node.value;\n break;\n } else {\n proof.auxExistence = true;\n proof.auxIndex = node.index;\n proof.auxValue = node.value;\n proof.value = node.value;\n break;\n }\n } else if (node.nodeType == NodeType.MIDDLE) {\n if ((proof.index >> i) & 1 == 1) {\n nextNodeHash = node.childRight;\n proof.siblings[i] = node.childLeft;\n } else {\n nextNodeHash = node.childLeft;\n proof.siblings[i] = node.childRight;\n }\n } else {\n revert(\"Invalid node type\");\n }\n }\n return proof;\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical timestamp.\n * @param index Node index.\n * @param timestamp The latest timestamp to get proof for.\n * @return Proof struct.\n */\n function getProofByTime(\n Data storage self,\n uint256 index,\n uint256 timestamp\n ) public view returns (Proof memory) {\n RootEntryInfo memory rootInfo = getRootInfoByTime(self, timestamp);\n return getProofByRoot(self, index, rootInfo.root);\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical block number.\n * @param index Node index.\n * @param blockNumber The latest block number to get proof for.\n * @return Proof struct.\n */\n function getProofByBlock(\n Data storage self,\n uint256 index,\n uint256 blockNumber\n ) external view returns (Proof memory) {\n RootEntryInfo memory rootInfo = getRootInfoByBlock(self, blockNumber);\n return getProofByRoot(self, index, rootInfo.root);\n }\n\n function getRoot(Data storage self) public view onlyInitialized(self) returns (uint256) {\n return self.rootEntries[self.rootEntries.length - 1].root;\n }\n\n /**\n * @dev Get root info by some historical timestamp.\n * @param timestamp The latest timestamp to get the root info for.\n * @return Root info struct\n */\n function getRootInfoByTime(\n Data storage self,\n uint256 timestamp\n ) public view returns (RootEntryInfo memory) {\n require(timestamp <= block.timestamp, \"No future timestamps allowed\");\n\n return\n _getRootInfoByTimestampOrBlock(\n self,\n timestamp,\n BinarySearchSmtRoots.SearchType.TIMESTAMP\n );\n }\n\n /**\n * @dev Get root info by some historical block number.\n * @param blockN The latest block number to get the root info for.\n * @return Root info struct\n */\n function getRootInfoByBlock(\n Data storage self,\n uint256 blockN\n ) public view returns (RootEntryInfo memory) {\n require(blockN <= block.number, \"No future blocks allowed\");\n\n return _getRootInfoByTimestampOrBlock(self, blockN, BinarySearchSmtRoots.SearchType.BLOCK);\n }\n\n /**\n * @dev Returns root info by root\n * @param root root\n * @return Root info struct\n */\n function getRootInfo(\n Data storage self,\n uint256 root\n ) public view onlyExistingRoot(self, root) returns (RootEntryInfo memory) {\n uint256[] storage indexes = self.rootIndexes[root];\n uint256 lastIndex = indexes[indexes.length - 1];\n return _getRootInfoByIndex(self, lastIndex);\n }\n\n /**\n * @dev Retrieve duplicate root quantity by id and state.\n * If the root repeats more that once, the length may be greater than 1.\n * @param root A root.\n * @return Root root entries quantity.\n */\n function getRootInfoListLengthByRoot(\n Data storage self,\n uint256 root\n ) public view returns (uint256) {\n return self.rootIndexes[root].length;\n }\n\n /**\n * @dev Retrieve root infos list of duplicated root by id and state.\n * If the root repeats more that once, the length list may be greater than 1.\n * @param root A root.\n * @param startIndex The index to start the list.\n * @param length The length of the list.\n * @return Root Root entries quantity.\n */\n function getRootInfoListByRoot(\n Data storage self,\n uint256 root,\n uint256 startIndex,\n uint256 length\n ) public view onlyExistingRoot(self, root) returns (RootEntryInfo[] memory) {\n uint256[] storage indexes = self.rootIndexes[root];\n (uint256 start, uint256 end) = ArrayUtils.calculateBounds(\n indexes.length,\n startIndex,\n length,\n ROOT_INFO_LIST_RETURN_LIMIT\n );\n\n RootEntryInfo[] memory result = new RootEntryInfo[](end - start);\n for (uint256 i = start; i < end; i++) {\n result[i - start] = _getRootInfoByIndex(self, indexes[i]);\n }\n\n return result;\n }\n\n /**\n * @dev Checks if root exists\n * @param root root\n * return true if root exists\n */\n function rootExists(Data storage self, uint256 root) public view returns (bool) {\n return self.rootIndexes[root].length > 0;\n }\n\n /**\n * @dev Sets max depth of the SMT\n * @param maxDepth max depth\n */\n function setMaxDepth(Data storage self, uint256 maxDepth) public {\n require(maxDepth > 0, \"Max depth must be greater than zero\");\n require(maxDepth > self.maxDepth, \"Max depth can only be increased\");\n require(maxDepth <= MAX_DEPTH_HARD_CAP, \"Max depth is greater than hard cap\");\n self.maxDepth = maxDepth;\n }\n\n /**\n * @dev Gets max depth of the SMT\n * return max depth\n */\n function getMaxDepth(Data storage self) external view returns (uint256) {\n return self.maxDepth;\n }\n\n /**\n * @dev Initialize SMT with max depth and root entry of an empty tree.\n * @param maxDepth Max depth of the SMT.\n */\n function initialize(Data storage self, uint256 maxDepth) external {\n require(!isInitialized(self), \"Smt is already initialized\");\n setMaxDepth(self, maxDepth);\n _addEntry(self, 0, 0, 0);\n self.initialized = true;\n }\n\n modifier onlyInitialized(Data storage self) {\n require(isInitialized(self), \"Smt is not initialized\");\n _;\n }\n\n function isInitialized(Data storage self) public view returns (bool) {\n return self.initialized;\n }\n\n function _addLeaf(\n Data storage self,\n Node memory newLeaf,\n uint256 nodeHash,\n uint256 depth\n ) internal returns (uint256) {\n if (depth > self.maxDepth) {\n revert(\"Max depth reached\");\n }\n\n Node memory node = self.nodes[nodeHash];\n uint256 nextNodeHash;\n uint256 leafHash = 0;\n\n if (node.nodeType == NodeType.EMPTY) {\n leafHash = _addNode(self, newLeaf);\n } else if (node.nodeType == NodeType.LEAF) {\n leafHash = node.index == newLeaf.index\n ? _addNode(self, newLeaf)\n : _pushLeaf(self, newLeaf, node, depth);\n } else if (node.nodeType == NodeType.MIDDLE) {\n Node memory newNodeMiddle;\n\n if ((newLeaf.index >> depth) & 1 == 1) {\n nextNodeHash = _addLeaf(self, newLeaf, node.childRight, depth + 1);\n\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: node.childLeft,\n childRight: nextNodeHash,\n index: 0,\n value: 0\n });\n } else {\n nextNodeHash = _addLeaf(self, newLeaf, node.childLeft, depth + 1);\n\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: nextNodeHash,\n childRight: node.childRight,\n index: 0,\n value: 0\n });\n }\n\n leafHash = _addNode(self, newNodeMiddle);\n }\n\n return leafHash;\n }\n\n function _pushLeaf(\n Data storage self,\n Node memory newLeaf,\n Node memory oldLeaf,\n uint256 depth\n ) internal returns (uint256) {\n // no reason to continue if we are at max possible depth\n // as, anyway, we exceed the depth going down the tree\n if (depth >= self.maxDepth) {\n revert(\"Max depth reached\");\n }\n\n Node memory newNodeMiddle;\n bool newLeafBitAtDepth = (newLeaf.index >> depth) & 1 == 1;\n bool oldLeafBitAtDepth = (oldLeaf.index >> depth) & 1 == 1;\n\n // Check if we need to go deeper if diverge at the depth's bit\n if (newLeafBitAtDepth == oldLeafBitAtDepth) {\n uint256 nextNodeHash = _pushLeaf(self, newLeaf, oldLeaf, depth + 1);\n\n if (newLeafBitAtDepth) {\n // go right\n newNodeMiddle = Node(NodeType.MIDDLE, 0, nextNodeHash, 0, 0);\n } else {\n // go left\n newNodeMiddle = Node(NodeType.MIDDLE, nextNodeHash, 0, 0, 0);\n }\n return _addNode(self, newNodeMiddle);\n }\n\n if (newLeafBitAtDepth) {\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: _getNodeHash(oldLeaf),\n childRight: _getNodeHash(newLeaf),\n index: 0,\n value: 0\n });\n } else {\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: _getNodeHash(newLeaf),\n childRight: _getNodeHash(oldLeaf),\n index: 0,\n value: 0\n });\n }\n\n _addNode(self, newLeaf);\n return _addNode(self, newNodeMiddle);\n }\n\n function _addNode(Data storage self, Node memory node) internal returns (uint256) {\n uint256 nodeHash = _getNodeHash(node);\n // We don't have any guarantees if the hash function attached is good enough.\n // So, if the node hash already exists, we need to check\n // if the node in the tree exactly matches the one we are trying to add.\n if (self.nodes[nodeHash].nodeType != NodeType.EMPTY) {\n assert(self.nodes[nodeHash].nodeType == node.nodeType);\n assert(self.nodes[nodeHash].childLeft == node.childLeft);\n assert(self.nodes[nodeHash].childRight == node.childRight);\n assert(self.nodes[nodeHash].index == node.index);\n assert(self.nodes[nodeHash].value == node.value);\n return nodeHash;\n }\n\n self.nodes[nodeHash] = node;\n return nodeHash;\n }\n\n function _getNodeHash(Node memory node) internal pure returns (uint256) {\n uint256 nodeHash = 0;\n if (node.nodeType == NodeType.LEAF) {\n uint256[3] memory params = [node.index, node.value, uint256(1)];\n nodeHash = PoseidonUnit3L.poseidon(params);\n } else if (node.nodeType == NodeType.MIDDLE) {\n nodeHash = PoseidonUnit2L.poseidon([node.childLeft, node.childRight]);\n }\n return nodeHash; // Note: expected to return 0 if NodeType.EMPTY, which is the only option left\n }\n\n function _getRootInfoByIndex(\n Data storage self,\n uint256 index\n ) internal view returns (RootEntryInfo memory) {\n bool isLastRoot = index == self.rootEntries.length - 1;\n RootEntry storage rootEntry = self.rootEntries[index];\n\n return\n RootEntryInfo({\n root: rootEntry.root,\n replacedByRoot: isLastRoot ? 0 : self.rootEntries[index + 1].root,\n createdAtTimestamp: rootEntry.createdAtTimestamp,\n replacedAtTimestamp: isLastRoot\n ? 0\n : self.rootEntries[index + 1].createdAtTimestamp,\n createdAtBlock: rootEntry.createdAtBlock,\n replacedAtBlock: isLastRoot ? 0 : self.rootEntries[index + 1].createdAtBlock\n });\n }\n\n function _getRootInfoByTimestampOrBlock(\n Data storage self,\n uint256 timestampOrBlock,\n BinarySearchSmtRoots.SearchType searchType\n ) internal view returns (RootEntryInfo memory) {\n (uint256 index, bool found) = self.binarySearchUint256(timestampOrBlock, searchType);\n\n // As far as we always have at least one root entry, we should always find it\n assert(found);\n\n return _getRootInfoByIndex(self, index);\n }\n\n function _addEntry(\n Data storage self,\n uint256 root,\n uint256 _timestamp,\n uint256 _block\n ) internal {\n self.rootEntries.push(\n RootEntry({root: root, createdAtTimestamp: _timestamp, createdAtBlock: _block})\n );\n\n self.rootIndexes[root].push(self.rootEntries.length - 1);\n }\n}\n\n/// @title A binary search for the sparse merkle tree root history\n// Implemented as a separate library for testing purposes\nlibrary BinarySearchSmtRoots {\n /**\n * @dev Enum for the SMT history field selection\n */\n enum SearchType {\n TIMESTAMP,\n BLOCK\n }\n\n /**\n * @dev Binary search method for the SMT history,\n * which searches for the index of the root entry saved by the given timestamp or block\n * @param value The timestamp or block to search for.\n * @param searchType The type of the search (timestamp or block).\n */\n function binarySearchUint256(\n SmtLib.Data storage self,\n uint256 value,\n SearchType searchType\n ) internal view returns (uint256, bool) {\n if (self.rootEntries.length == 0) {\n return (0, false);\n }\n\n uint256 min = 0;\n uint256 max = self.rootEntries.length - 1;\n uint256 mid;\n\n while (min <= max) {\n mid = (max + min) / 2;\n\n uint256 midValue = fieldSelector(self.rootEntries[mid], searchType);\n if (midValue == value) {\n while (mid < self.rootEntries.length - 1) {\n uint256 nextValue = fieldSelector(self.rootEntries[mid + 1], searchType);\n if (nextValue == value) {\n mid++;\n } else {\n return (mid, true);\n }\n }\n return (mid, true);\n } else if (value > midValue) {\n min = mid + 1;\n } else if (value < midValue && mid > 0) {\n // mid > 0 is to avoid underflow\n max = mid - 1;\n } else {\n // This means that value < midValue && mid == 0. So we found nothing.\n return (0, false);\n }\n }\n\n // The case when the searched value does not exist and we should take the closest smaller value\n // Index in the \"max\" var points to the root entry with max value smaller than the searched value\n return (max, true);\n }\n\n /**\n * @dev Selects either timestamp or block field from the root entry struct\n * depending on the search type\n * @param rti The root entry to select the field from.\n * @param st The search type.\n */\n function fieldSelector(\n SmtLib.RootEntry memory rti,\n SearchType st\n ) internal pure returns (uint256) {\n if (st == SearchType.BLOCK) {\n return rti.createdAtBlock;\n } else if (st == SearchType.TIMESTAMP) {\n return rti.createdAtTimestamp;\n } else {\n revert(\"Invalid search type\");\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.20;\n\nimport {OwnableUpgradeable} from \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\n *\n * The initial owner is specified at deployment time in the constructor for `Ownable`. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable2Step\n struct Ownable2StepStorage {\n address _pendingOwner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable2Step\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant Ownable2StepStorageLocation = 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00;\n\n function _getOwnable2StepStorage() private pure returns (Ownable2StepStorage storage $) {\n assembly {\n $.slot := Ownable2StepStorageLocation\n }\n }\n\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n function __Ownable2Step_init() internal onlyInitializing {\n }\n\n function __Ownable2Step_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Returns the address of the pending owner.\n */\n function pendingOwner() public view virtual returns (address) {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n return $._pendingOwner;\n }\n\n /**\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n * Can only be called by the current owner.\n *\n * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\n */\n function transferOwnership(address newOwner) public virtual override onlyOwner {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n $._pendingOwner = newOwner;\n emit OwnershipTransferStarted(owner(), newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual override {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n delete $._pendingOwner;\n super._transferOwnership(newOwner);\n }\n\n /**\n * @dev The new owner accepts the ownership transfer.\n */\n function acceptOwnership() public virtual {\n address sender = _msgSender();\n if (pendingOwner() != sender) {\n revert OwnableUnauthorizedAccount(sender);\n }\n _transferOwnership(sender);\n }\n}\n"
+ },
+ "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n struct OwnableStorage {\n address _owner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n assembly {\n $.slot := OwnableStorageLocation\n }\n }\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n function __Ownable_init(address initialOwner) internal onlyInitializing {\n __Ownable_init_unchained(initialOwner);\n }\n\n function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n OwnableStorage storage $ = _getOwnableStorage();\n return $._owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n OwnableStorage storage $ = _getOwnableStorage();\n address oldOwner = $._owner;\n $._owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"
+ },
+ "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reinitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n *\n * NOTE: Consider following the ERC-7201 formula to derive storage locations.\n */\n function _initializableStorageSlot() internal pure virtual returns (bytes32) {\n return INITIALIZABLE_STORAGE;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n bytes32 slot = _initializableStorageSlot();\n assembly {\n $.slot := slot\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"
+ },
+ "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.20;\n\nimport {MessageHashUtils} from \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\nimport {IERC5267} from \"@openzeppelin/contracts/interfaces/IERC5267.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n * encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n * does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n * produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n * separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n * separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n */\nabstract contract EIP712Upgradeable is Initializable, IERC5267 {\n bytes32 private constant TYPE_HASH =\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\n /// @custom:storage-location erc7201:openzeppelin.storage.EIP712\n struct EIP712Storage {\n /// @custom:oz-renamed-from _HASHED_NAME\n bytes32 _hashedName;\n /// @custom:oz-renamed-from _HASHED_VERSION\n bytes32 _hashedVersion;\n\n string _name;\n string _version;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.EIP712\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant EIP712StorageLocation = 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100;\n\n function _getEIP712Storage() private pure returns (EIP712Storage storage $) {\n assembly {\n $.slot := EIP712StorageLocation\n }\n }\n\n /**\n * @dev Initializes the domain separator and parameter caches.\n *\n * The meaning of `name` and `version` is specified in\n * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP-712]:\n *\n * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n * - `version`: the current major version of the signing domain.\n *\n * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n * contract upgrade].\n */\n function __EIP712_init(string memory name, string memory version) internal onlyInitializing {\n __EIP712_init_unchained(name, version);\n }\n\n function __EIP712_init_unchained(string memory name, string memory version) internal onlyInitializing {\n EIP712Storage storage $ = _getEIP712Storage();\n $._name = name;\n $._version = version;\n\n // Reset prior values in storage if upgrading\n $._hashedName = 0;\n $._hashedVersion = 0;\n }\n\n /**\n * @dev Returns the domain separator for the current chain.\n */\n function _domainSeparatorV4() internal view returns (bytes32) {\n return _buildDomainSeparator();\n }\n\n function _buildDomainSeparator() private view returns (bytes32) {\n return keccak256(abi.encode(TYPE_HASH, _EIP712NameHash(), _EIP712VersionHash(), block.chainid, address(this)));\n }\n\n /**\n * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n * function returns the hash of the fully encoded EIP712 message for this domain.\n *\n * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n *\n * ```solidity\n * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n * keccak256(\"Mail(address to,string contents)\"),\n * mailTo,\n * keccak256(bytes(mailContents))\n * )));\n * address signer = ECDSA.recover(digest, signature);\n * ```\n */\n function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n return MessageHashUtils.toTypedDataHash(_domainSeparatorV4(), structHash);\n }\n\n /**\n * @inheritdoc IERC5267\n */\n function eip712Domain()\n public\n view\n virtual\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n )\n {\n EIP712Storage storage $ = _getEIP712Storage();\n // If the hashed name and version in storage are non-zero, the contract hasn't been properly initialized\n // and the EIP712 domain is not reliable, as it will be missing name and version.\n require($._hashedName == 0 && $._hashedVersion == 0, \"EIP712: Uninitialized\");\n\n return (\n hex\"0f\", // 01111\n _EIP712Name(),\n _EIP712Version(),\n block.chainid,\n address(this),\n bytes32(0),\n new uint256[](0)\n );\n }\n\n /**\n * @dev The name parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Name() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._name;\n }\n\n /**\n * @dev The version parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Version() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._version;\n }\n\n /**\n * @dev The hash of the name parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead.\n */\n function _EIP712NameHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory name = _EIP712Name();\n if (bytes(name).length > 0) {\n return keccak256(bytes(name));\n } else {\n // If the name is empty, the contract may have been upgraded without initializing the new storage.\n // We return the name hash in storage if non-zero, otherwise we assume the name is empty by design.\n bytes32 hashedName = $._hashedName;\n if (hashedName != 0) {\n return hashedName;\n } else {\n return keccak256(\"\");\n }\n }\n }\n\n /**\n * @dev The hash of the version parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead.\n */\n function _EIP712VersionHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory version = _EIP712Version();\n if (bytes(version).length > 0) {\n return keccak256(bytes(version));\n } else {\n // If the version is empty, the contract may have been upgraded without initializing the new storage.\n // We return the version hash in storage if non-zero, otherwise we assume the version is empty by design.\n bytes32 hashedVersion = $._hashedVersion;\n if (hashedVersion != 0) {\n return hashedVersion;\n } else {\n return keccak256(\"\");\n }\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/interfaces/IERC5267.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5267.sol)\n\npragma solidity ^0.8.20;\n\ninterface IERC5267 {\n /**\n * @dev MAY be emitted to signal that the domain could have changed.\n */\n event EIP712DomainChanged();\n\n /**\n * @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n * signature.\n */\n function eip712Domain()\n external\n view\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n );\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Arrays.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/Arrays.sol)\n// This file was procedurally generated from scripts/generate/templates/Arrays.js.\n\npragma solidity ^0.8.20;\n\nimport {Comparators} from \"./Comparators.sol\";\nimport {SlotDerivation} from \"./SlotDerivation.sol\";\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using SlotDerivation for bytes32;\n using StorageSlot for bytes32;\n\n /**\n * @dev Sort an array of uint256 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n uint256[] memory array,\n function(uint256, uint256) pure returns (bool) comp\n ) internal pure returns (uint256[] memory) {\n _quickSort(_begin(array), _end(array), comp);\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of uint256 in increasing order.\n */\n function sort(uint256[] memory array) internal pure returns (uint256[] memory) {\n sort(array, Comparators.lt);\n return array;\n }\n\n /**\n * @dev Sort an array of address (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n address[] memory array,\n function(address, address) pure returns (bool) comp\n ) internal pure returns (address[] memory) {\n sort(_castToUint256Array(array), _castToUint256Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of address in increasing order.\n */\n function sort(address[] memory array) internal pure returns (address[] memory) {\n sort(_castToUint256Array(array), Comparators.lt);\n return array;\n }\n\n /**\n * @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n bytes32[] memory array,\n function(bytes32, bytes32) pure returns (bool) comp\n ) internal pure returns (bytes32[] memory) {\n sort(_castToUint256Array(array), _castToUint256Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of bytes32 in increasing order.\n */\n function sort(bytes32[] memory array) internal pure returns (bytes32[] memory) {\n sort(_castToUint256Array(array), Comparators.lt);\n return array;\n }\n\n /**\n * @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n * at end (exclusive). Sorting follows the `comp` comparator.\n *\n * Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n *\n * IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n * be used only if the limits are within a memory array.\n */\n function _quickSort(uint256 begin, uint256 end, function(uint256, uint256) pure returns (bool) comp) private pure {\n unchecked {\n if (end - begin < 0x40) return;\n\n // Use first element as pivot\n uint256 pivot = _mload(begin);\n // Position where the pivot should be at the end of the loop\n uint256 pos = begin;\n\n for (uint256 it = begin + 0x20; it < end; it += 0x20) {\n if (comp(_mload(it), pivot)) {\n // If the value stored at the iterator's position comes before the pivot, we increment the\n // position of the pivot and move the value there.\n pos += 0x20;\n _swap(pos, it);\n }\n }\n\n _swap(begin, pos); // Swap pivot into place\n _quickSort(begin, pos, comp); // Sort the left side of the pivot\n _quickSort(pos + 0x20, end, comp); // Sort the right side of the pivot\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first element of `array`.\n */\n function _begin(uint256[] memory array) private pure returns (uint256 ptr) {\n assembly (\"memory-safe\") {\n ptr := add(array, 0x20)\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n * that comes just after the last element of the array.\n */\n function _end(uint256[] memory array) private pure returns (uint256 ptr) {\n unchecked {\n return _begin(array) + array.length * 0x20;\n }\n }\n\n /**\n * @dev Load memory word (as a uint256) at location `ptr`.\n */\n function _mload(uint256 ptr) private pure returns (uint256 value) {\n assembly {\n value := mload(ptr)\n }\n }\n\n /**\n * @dev Swaps the elements memory location `ptr1` and `ptr2`.\n */\n function _swap(uint256 ptr1, uint256 ptr2) private pure {\n assembly {\n let value1 := mload(ptr1)\n let value2 := mload(ptr2)\n mstore(ptr1, value2)\n mstore(ptr2, value1)\n }\n }\n\n /// @dev Helper: low level cast address memory array to uint256 memory array\n function _castToUint256Array(address[] memory input) private pure returns (uint256[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast bytes32 memory array to uint256 memory array\n function _castToUint256Array(bytes32[] memory input) private pure returns (uint256[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast address comp function to uint256 comp function\n function _castToUint256Comp(\n function(address, address) pure returns (bool) input\n ) private pure returns (function(uint256, uint256) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast bytes32 comp function to uint256 comp function\n function _castToUint256Comp(\n function(bytes32, bytes32) pure returns (bool) input\n ) private pure returns (function(uint256, uint256) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * NOTE: The `array` is expected to be sorted in ascending order, and to\n * contain no repeated elements.\n *\n * IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n * support for repeated elements in the array. The {lowerBound} function should\n * be used instead.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value greater or equal than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound].\n */\n function lowerBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value strictly greater than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound].\n */\n function upperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {lowerBound}, but with an array in memory.\n */\n function lowerBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {upperBound}, but with an array in memory.\n */\n function upperBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(bytes32[] memory arr, uint256 pos) internal pure returns (bytes32 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(address[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(bytes32[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(uint256[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Comparators.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Comparators.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides a set of functions to compare values.\n *\n * _Available since v5.1._\n */\nlibrary Comparators {\n function lt(uint256 a, uint256 b) internal pure returns (bool) {\n return a < b;\n }\n\n function gt(uint256 a, uint256 b) internal pure returns (bool) {\n return a > b;\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\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.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\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 *\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 {MessageHashUtils-toEthSignedMessageHash} on it.\n *\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 */\n function tryRecover(\n bytes32 hash,\n bytes memory signature\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n assembly (\"memory-safe\") {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\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 *\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 {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[ERC-2098 short signatures]\n */\n function tryRecover(\n bytes32 hash,\n bytes32 r,\n bytes32 vs\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32.\n */\n function toDataWithIntendedValidatorHash(\n address validator,\n bytes32 messageHash\n ) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n mstore(0x00, hex\"19_00\")\n mstore(0x02, shl(96, validator))\n mstore(0x16, messageHash)\n digest := keccak256(0x00, 0x36)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/introspection/ERC165.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/introspection/IERC165.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"
+ },
+ "@openzeppelin/contracts/utils/math/Math.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Return the 512-bit addition of two uint256.\n *\n * The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low.\n */\n function add512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n assembly (\"memory-safe\") {\n low := add(a, b)\n high := lt(low, a)\n }\n }\n\n /**\n * @dev Return the 512-bit multiplication of two uint256.\n *\n * The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low.\n */\n function mul512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n // 512-bit multiply [high low] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = high * 2²⁵⁶ + low.\n assembly (\"memory-safe\") {\n let mm := mulmod(a, b, not(0))\n low := mul(a, b)\n high := sub(sub(mm, low), lt(mm, low))\n }\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with a success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n success = c >= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a - b;\n success = c <= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a * b;\n assembly (\"memory-safe\") {\n // Only true when the multiplication doesn't overflow\n // (c / a == b) || (a == 0)\n success := or(eq(div(c, a), b), iszero(a))\n }\n // equivalent to: success ? c : 0\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `DIV` opcode returns zero when the denominator is 0.\n result := div(a, b)\n }\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `MOD` opcode returns zero when the denominator is 0.\n result := mod(a, b)\n }\n }\n }\n\n /**\n * @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingAdd(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryAdd(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Unsigned saturating subtraction, bounds to zero instead of overflowing.\n */\n function saturatingSub(uint256 a, uint256 b) internal pure returns (uint256) {\n (, uint256 result) = trySub(a, b);\n return result;\n }\n\n /**\n * @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingMul(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryMul(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n (uint256 high, uint256 low) = mul512(x, y);\n\n // Handle non-overflow cases, 256 by 256 division.\n if (high == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return low / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= high) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [high low].\n uint256 remainder;\n assembly (\"memory-safe\") {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n high := sub(high, gt(remainder, low))\n low := sub(low, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly (\"memory-safe\") {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [high low] by twos.\n low := div(low, twos)\n\n // Flip twos such that it is 2²⁵⁶ / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from high into low.\n low |= high * twos;\n\n // Invert denominator mod 2²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, this is the final result. We don't need to compute the high bits of the result and high\n // is no longer required.\n result = low * inverse;\n return result;\n }\n }\n\n /**\n * @dev Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256.\n */\n function mulShr(uint256 x, uint256 y, uint8 n) internal pure returns (uint256 result) {\n unchecked {\n (uint256 high, uint256 low) = mul512(x, y);\n if (high >= 1 << n) {\n Panic.panic(Panic.UNDER_OVERFLOW);\n }\n return (high << (256 - n)) | (low >> n);\n }\n }\n\n /**\n * @dev Calculates x * y >> n with full precision, following the selected rounding direction.\n */\n function mulShr(uint256 x, uint256 y, uint8 n, Rounding rounding) internal pure returns (uint256) {\n return mulShr(x, y, n) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, 1 << n) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n *\n * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n *\n * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n */\n function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n unchecked {\n return Math.modExp(a, p - 2, p);\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n assembly (\"memory-safe\") {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // If upper 8 bits of 16-bit half set, add 8 to result\n r |= SafeCast.toUint((x >> r) > 0xff) << 3;\n // If upper 4 bits of 8-bit half set, add 4 to result\n r |= SafeCast.toUint((x >> r) > 0xf) << 2;\n\n // Shifts value right by the current result and use it as an index into this lookup table:\n //\n // | x (4 bits) | index | table[index] = MSB position |\n // |------------|---------|-----------------------------|\n // | 0000 | 0 | table[0] = 0 |\n // | 0001 | 1 | table[1] = 0 |\n // | 0010 | 2 | table[2] = 1 |\n // | 0011 | 3 | table[3] = 1 |\n // | 0100 | 4 | table[4] = 2 |\n // | 0101 | 5 | table[5] = 2 |\n // | 0110 | 6 | table[6] = 2 |\n // | 0111 | 7 | table[7] = 2 |\n // | 1000 | 8 | table[8] = 3 |\n // | 1001 | 9 | table[9] = 3 |\n // | 1010 | 10 | table[10] = 3 |\n // | 1011 | 11 | table[11] = 3 |\n // | 1100 | 12 | table[12] = 3 |\n // | 1101 | 13 | table[13] = 3 |\n // | 1110 | 14 | table[14] = 3 |\n // | 1111 | 15 | table[15] = 3 |\n //\n // The lookup table is represented as a 32-byte value with the MSB positions for 0-15 in the last 16 bytes.\n assembly (\"memory-safe\") {\n r := or(r, byte(shr(r, x), 0x0000010102020202030303030303030300000000000000000000000000000000))\n }\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // Add 1 if upper 8 bits of 16-bit half set, and divide accumulated result by 8\n return (r >> 3) | SafeCast.toUint((x >> r) > 0xff);\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/math/SafeCast.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n assembly (\"memory-safe\") {\n u := iszero(iszero(b))\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/math/SignedMath.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));\n }\n }\n\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // Formula from the \"Bit Twiddling Hacks\" by Sean Eron Anderson.\n // Since `n` is a signed integer, the generated bytecode will use the SAR opcode to perform the right shift,\n // taking advantage of the most significant (or \"sign\" bit) in two's complement representation.\n // This opcode adds new most significant bits set to the value of the previous most significant bit. As a result,\n // the mask will either be `bytes32(0)` (if n is positive) or `~bytes32(0)` (if n is negative).\n int256 mask = n >> 255;\n\n // A `bytes32(0)` mask leaves the input unchanged, while a `~bytes32(0)` mask complements it.\n return uint256((n + mask) ^ mask);\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Panic.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/SlotDerivation.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/SlotDerivation.sol)\n// This file was procedurally generated from scripts/generate/templates/SlotDerivation.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n * corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n * the solidity language / compiler.\n *\n * See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n *\n * Example usage:\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using StorageSlot for bytes32;\n * using SlotDerivation for bytes32;\n *\n * // Declare a namespace\n * string private constant _NAMESPACE = \"\"; // eg. OpenZeppelin.Slot\n *\n * function setValueInNamespace(uint256 key, address newValue) internal {\n * _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n * }\n *\n * function getValueInNamespace(uint256 key) internal view returns (address) {\n * return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {StorageSlot}.\n *\n * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n * upgrade safety will ignore the slots accessed through this library.\n *\n * _Available since v5.1._\n */\nlibrary SlotDerivation {\n /**\n * @dev Derive an ERC-7201 slot from a string (namespace).\n */\n function erc7201Slot(string memory namespace) internal pure returns (bytes32 slot) {\n assembly (\"memory-safe\") {\n mstore(0x00, sub(keccak256(add(namespace, 0x20), mload(namespace)), 1))\n slot := and(keccak256(0x00, 0x20), not(0xff))\n }\n }\n\n /**\n * @dev Add an offset to a slot to get the n-th element of a structure or an array.\n */\n function offset(bytes32 slot, uint256 pos) internal pure returns (bytes32 result) {\n unchecked {\n return bytes32(uint256(slot) + pos);\n }\n }\n\n /**\n * @dev Derive the location of the first element in an array from the slot where the length is stored.\n */\n function deriveArray(bytes32 slot) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, slot)\n result := keccak256(0x00, 0x20)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, address key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, and(key, shr(96, not(0))))\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bool key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, iszero(iszero(key)))\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes32 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, uint256 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, int256 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, string memory key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes memory key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/StorageSlot.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Strings.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SafeCast} from \"./math/SafeCast.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n using SafeCast for *;\n\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n uint256 private constant SPECIAL_CHARS_LOOKUP =\n (1 << 0x08) | // backspace\n (1 << 0x09) | // tab\n (1 << 0x0a) | // newline\n (1 << 0x0c) | // form feed\n (1 << 0x0d) | // carriage return\n (1 << 0x22) | // double quote\n (1 << 0x5c); // backslash\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev The string being parsed contains characters that are not in scope of the given base.\n */\n error StringsInvalidChar();\n\n /**\n * @dev The string being parsed is not a properly formatted address.\n */\n error StringsInvalidAddressFormat();\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n assembly (\"memory-safe\") {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n assembly (\"memory-safe\") {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n * representation, according to EIP-55.\n */\n function toChecksumHexString(address addr) internal pure returns (string memory) {\n bytes memory buffer = bytes(toHexString(addr));\n\n // hash the hex part of buffer (skip length + 2 bytes, length 40)\n uint256 hashValue;\n assembly (\"memory-safe\") {\n hashValue := shr(96, keccak256(add(buffer, 0x22), 40))\n }\n\n for (uint256 i = 41; i > 1; --i) {\n // possible values for buffer[i] are 48 (0) to 57 (9) and 97 (a) to 102 (f)\n if (hashValue & 0xf > 7 && uint8(buffer[i]) > 96) {\n // case shift by xoring with 0x20\n buffer[i] ^= 0x20;\n }\n hashValue >>= 4;\n }\n return string(buffer);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n\n /**\n * @dev Parse a decimal string and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input) internal pure returns (uint256) {\n return parseUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n uint256 result = 0;\n for (uint256 i = begin; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 9) return (false, 0);\n result *= 10;\n result += chr;\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a decimal string and returns the value as a `int256`.\n *\n * Requirements:\n * - The string must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input) internal pure returns (int256) {\n return parseInt(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input, uint256 begin, uint256 end) internal pure returns (int256) {\n (bool success, int256 value) = tryParseInt(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n * the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(string memory input) internal pure returns (bool success, int256 value) {\n return _tryParseIntUncheckedBounds(input, 0, bytes(input).length);\n }\n\n uint256 private constant ABS_MIN_INT256 = 2 ** 255;\n\n /**\n * @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character or if the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, int256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseIntUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseIntUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, int256 value) {\n bytes memory buffer = bytes(input);\n\n // Check presence of a negative sign.\n bytes1 sign = begin == end ? bytes1(0) : bytes1(_unsafeReadBytesOffset(buffer, begin)); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n bool positiveSign = sign == bytes1(\"+\");\n bool negativeSign = sign == bytes1(\"-\");\n uint256 offset = (positiveSign || negativeSign).toUint();\n\n (bool absSuccess, uint256 absValue) = tryParseUint(input, begin + offset, end);\n\n if (absSuccess && absValue < ABS_MIN_INT256) {\n return (true, negativeSign ? -int256(absValue) : int256(absValue));\n } else if (absSuccess && negativeSign && absValue == ABS_MIN_INT256) {\n return (true, type(int256).min);\n } else return (false, 0);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input) internal pure returns (uint256) {\n return parseHexUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseHexUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseHexUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n * invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseHexUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseHexUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n // skip 0x prefix if present\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(buffer, begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 offset = hasPrefix.toUint() * 2;\n\n uint256 result = 0;\n for (uint256 i = begin + offset; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 15) return (false, 0);\n result *= 16;\n unchecked {\n // Multiplying by 16 is equivalent to a shift of 4 bits (with additional overflow check).\n // This guarantees that adding a value < 16 will not cause an overflow, hence the unchecked.\n result += chr;\n }\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input) internal pure returns (address) {\n return parseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input, uint256 begin, uint256 end) internal pure returns (address) {\n (bool success, address value) = tryParseAddress(input, begin, end);\n if (!success) revert StringsInvalidAddressFormat();\n return value;\n }\n\n /**\n * @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n * formatted address. See {parseAddress-string} requirements.\n */\n function tryParseAddress(string memory input) internal pure returns (bool success, address value) {\n return tryParseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n * formatted address. See {parseAddress-string-uint256-uint256} requirements.\n */\n function tryParseAddress(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, address value) {\n if (end > bytes(input).length || begin > end) return (false, address(0));\n\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(bytes(input), begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 expectedLength = 40 + hasPrefix.toUint() * 2;\n\n // check that input is the correct length\n if (end - begin == expectedLength) {\n // length guarantees that this does not overflow, and value is at most type(uint160).max\n (bool s, uint256 v) = _tryParseHexUintUncheckedBounds(input, begin, end);\n return (s, address(uint160(v)));\n } else {\n return (false, address(0));\n }\n }\n\n function _tryParseChr(bytes1 chr) private pure returns (uint8) {\n uint8 value = uint8(chr);\n\n // Try to parse `chr`:\n // - Case 1: [0-9]\n // - Case 2: [a-f]\n // - Case 3: [A-F]\n // - otherwise not supported\n unchecked {\n if (value > 47 && value < 58) value -= 48;\n else if (value > 96 && value < 103) value -= 87;\n else if (value > 64 && value < 71) value -= 55;\n else return type(uint8).max;\n }\n\n return value;\n }\n\n /**\n * @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n *\n * WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n *\n * NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n * RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n * characters that are not in this range, but other tooling may provide different results.\n */\n function escapeJSON(string memory input) internal pure returns (string memory) {\n bytes memory buffer = bytes(input);\n bytes memory output = new bytes(2 * buffer.length); // worst case scenario\n uint256 outputLength = 0;\n\n for (uint256 i; i < buffer.length; ++i) {\n bytes1 char = bytes1(_unsafeReadBytesOffset(buffer, i));\n if (((SPECIAL_CHARS_LOOKUP & (1 << uint8(char))) != 0)) {\n output[outputLength++] = \"\\\\\";\n if (char == 0x08) output[outputLength++] = \"b\";\n else if (char == 0x09) output[outputLength++] = \"t\";\n else if (char == 0x0a) output[outputLength++] = \"n\";\n else if (char == 0x0c) output[outputLength++] = \"f\";\n else if (char == 0x0d) output[outputLength++] = \"r\";\n else if (char == 0x5c) output[outputLength++] = \"\\\\\";\n else if (char == 0x22) {\n // solhint-disable-next-line quotes\n output[outputLength++] = '\"';\n }\n } else {\n output[outputLength++] = char;\n }\n }\n // write the actual length and deallocate unused memory\n assembly (\"memory-safe\") {\n mstore(output, outputLength)\n mstore(0x40, add(output, shl(5, shr(5, add(outputLength, 63)))))\n }\n\n return string(output);\n }\n\n /**\n * @dev Reads a bytes32 from a bytes array without bounds checking.\n *\n * NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n * assembly block as such would prevent some optimizations.\n */\n function _unsafeReadBytesOffset(bytes memory buffer, uint256 offset) private pure returns (bytes32 value) {\n // This is not memory safe in the general case, but all calls to this private function are within bounds.\n assembly (\"memory-safe\") {\n value := mload(add(buffer, add(0x20, offset)))\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/utils/structs/EnumerableSet.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.20;\n\nimport {Arrays} from \"../Arrays.sol\";\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\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 * - Set can be cleared (all elements removed) in O(n).\n *\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\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 *\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 * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position is the index of the value in the `values` array plus 1.\n // Position 0 is used to mean a value is not in the set.\n mapping(bytes32 value => uint256) _positions;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._positions[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We cache the value's position to prevent multiple reads from the same storage slot\n uint256 position = set._positions[value];\n\n if (position != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 valueIndex = position - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (valueIndex != lastIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the lastValue to the index where the value to delete is\n set._values[valueIndex] = lastValue;\n // Update the tracked position of the lastValue (that was just moved)\n set._positions[lastValue] = position;\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the tracked position for the deleted slot\n delete set._positions[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function _clear(Set storage set) private {\n uint256 len = _length(set);\n for (uint256 i = 0; i < len; ++i) {\n delete set._positions[set._values[i]];\n }\n Arrays.unsafeSetLength(set._values, 0);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._positions[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\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.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(Bytes32Set storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\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.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n bytes32[] memory store = _values(set._inner);\n bytes32[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(AddressSet storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\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.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(UintSet storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\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.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n}\n"
+ },
+ "@quant-finance/solidity-datetime/contracts/DateTime.sol": {
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n// ----------------------------------------------------------------------------\n// DateTime Library v2.0\n//\n// A gas-efficient Solidity date and time library\n//\n// https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary\n//\n// Tested date range 1970/01/01 to 2345/12/31\n//\n// Conventions:\n// Unit | Range | Notes\n// :-------- |:-------------:|:-----\n// timestamp | >= 0 | Unix timestamp, number of seconds since 1970/01/01 00:00:00 UTC\n// year | 1970 ... 2345 |\n// month | 1 ... 12 |\n// day | 1 ... 31 |\n// hour | 0 ... 23 |\n// minute | 0 ... 59 |\n// second | 0 ... 59 |\n// dayOfWeek | 1 ... 7 | 1 = Monday, ..., 7 = Sunday\n//\n//\n// Enjoy. (c) BokkyPooBah / Bok Consulting Pty Ltd 2018-2019. The MIT Licence.\n// ----------------------------------------------------------------------------\n\nlibrary DateTime {\n uint256 constant SECONDS_PER_DAY = 24 * 60 * 60;\n uint256 constant SECONDS_PER_HOUR = 60 * 60;\n uint256 constant SECONDS_PER_MINUTE = 60;\n int256 constant OFFSET19700101 = 2440588;\n\n uint256 constant DOW_MON = 1;\n uint256 constant DOW_TUE = 2;\n uint256 constant DOW_WED = 3;\n uint256 constant DOW_THU = 4;\n uint256 constant DOW_FRI = 5;\n uint256 constant DOW_SAT = 6;\n uint256 constant DOW_SUN = 7;\n\n // ------------------------------------------------------------------------\n // Calculate the number of days from 1970/01/01 to year/month/day using\n // the date conversion algorithm from\n // http://aa.usno.navy.mil/faq/docs/JD_Formula.php\n // and subtracting the offset 2440588 so that 1970/01/01 is day 0\n //\n // days = day\n // - 32075\n // + 1461 * (year + 4800 + (month - 14) / 12) / 4\n // + 367 * (month - 2 - (month - 14) / 12 * 12) / 12\n // - 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4\n // - offset\n // ------------------------------------------------------------------------\n function _daysFromDate(uint256 year, uint256 month, uint256 day) internal pure returns (uint256 _days) {\n require(year >= 1970);\n int256 _year = int256(year);\n int256 _month = int256(month);\n int256 _day = int256(day);\n\n int256 __days = _day - 32075 + (1461 * (_year + 4800 + (_month - 14) / 12)) / 4\n + (367 * (_month - 2 - ((_month - 14) / 12) * 12)) / 12\n - (3 * ((_year + 4900 + (_month - 14) / 12) / 100)) / 4 - OFFSET19700101;\n\n _days = uint256(__days);\n }\n\n // ------------------------------------------------------------------------\n // Calculate year/month/day from the number of days since 1970/01/01 using\n // the date conversion algorithm from\n // http://aa.usno.navy.mil/faq/docs/JD_Formula.php\n // and adding the offset 2440588 so that 1970/01/01 is day 0\n //\n // int L = days + 68569 + offset\n // int N = 4 * L / 146097\n // L = L - (146097 * N + 3) / 4\n // year = 4000 * (L + 1) / 1461001\n // L = L - 1461 * year / 4 + 31\n // month = 80 * L / 2447\n // dd = L - 2447 * month / 80\n // L = month / 11\n // month = month + 2 - 12 * L\n // year = 100 * (N - 49) + year + L\n // ------------------------------------------------------------------------\n function _daysToDate(uint256 _days) internal pure returns (uint256 year, uint256 month, uint256 day) {\n unchecked {\n int256 __days = int256(_days);\n\n int256 L = __days + 68569 + OFFSET19700101;\n int256 N = (4 * L) / 146097;\n L = L - (146097 * N + 3) / 4;\n int256 _year = (4000 * (L + 1)) / 1461001;\n L = L - (1461 * _year) / 4 + 31;\n int256 _month = (80 * L) / 2447;\n int256 _day = L - (2447 * _month) / 80;\n L = _month / 11;\n _month = _month + 2 - 12 * L;\n _year = 100 * (N - 49) + _year + L;\n\n year = uint256(_year);\n month = uint256(_month);\n day = uint256(_day);\n }\n }\n\n function timestampFromDate(uint256 year, uint256 month, uint256 day) internal pure returns (uint256 timestamp) {\n timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY;\n }\n\n function timestampFromDateTime(\n uint256 year,\n uint256 month,\n uint256 day,\n uint256 hour,\n uint256 minute,\n uint256 second\n )\n internal\n pure\n returns (uint256 timestamp)\n {\n timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + hour * SECONDS_PER_HOUR\n + minute * SECONDS_PER_MINUTE + second;\n }\n\n function timestampToDate(uint256 timestamp) internal pure returns (uint256 year, uint256 month, uint256 day) {\n unchecked {\n (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n }\n\n function timestampToDateTime(uint256 timestamp)\n internal\n pure\n returns (uint256 year, uint256 month, uint256 day, uint256 hour, uint256 minute, uint256 second)\n {\n unchecked {\n (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n uint256 secs = timestamp % SECONDS_PER_DAY;\n hour = secs / SECONDS_PER_HOUR;\n secs = secs % SECONDS_PER_HOUR;\n minute = secs / SECONDS_PER_MINUTE;\n second = secs % SECONDS_PER_MINUTE;\n }\n }\n\n function isValidDate(uint256 year, uint256 month, uint256 day) internal pure returns (bool valid) {\n if (year >= 1970 && month > 0 && month <= 12) {\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > 0 && day <= daysInMonth) {\n valid = true;\n }\n }\n }\n\n function isValidDateTime(uint256 year, uint256 month, uint256 day, uint256 hour, uint256 minute, uint256 second)\n internal\n pure\n returns (bool valid)\n {\n if (isValidDate(year, month, day)) {\n if (hour < 24 && minute < 60 && second < 60) {\n valid = true;\n }\n }\n }\n\n function isLeapYear(uint256 timestamp) internal pure returns (bool leapYear) {\n (uint256 year,,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n leapYear = _isLeapYear(year);\n }\n\n function _isLeapYear(uint256 year) internal pure returns (bool leapYear) {\n leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n }\n\n function isWeekDay(uint256 timestamp) internal pure returns (bool weekDay) {\n weekDay = getDayOfWeek(timestamp) <= DOW_FRI;\n }\n\n function isWeekEnd(uint256 timestamp) internal pure returns (bool weekEnd) {\n weekEnd = getDayOfWeek(timestamp) >= DOW_SAT;\n }\n\n function getDaysInMonth(uint256 timestamp) internal pure returns (uint256 daysInMonth) {\n (uint256 year, uint256 month,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n daysInMonth = _getDaysInMonth(year, month);\n }\n\n function _getDaysInMonth(uint256 year, uint256 month) internal pure returns (uint256 daysInMonth) {\n if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {\n daysInMonth = 31;\n } else if (month != 2) {\n daysInMonth = 30;\n } else {\n daysInMonth = _isLeapYear(year) ? 29 : 28;\n }\n }\n\n // 1 = Monday, 7 = Sunday\n function getDayOfWeek(uint256 timestamp) internal pure returns (uint256 dayOfWeek) {\n uint256 _days = timestamp / SECONDS_PER_DAY;\n dayOfWeek = ((_days + 3) % 7) + 1;\n }\n\n function getYear(uint256 timestamp) internal pure returns (uint256 year) {\n (year,,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getMonth(uint256 timestamp) internal pure returns (uint256 month) {\n (, month,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getDay(uint256 timestamp) internal pure returns (uint256 day) {\n (,, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getHour(uint256 timestamp) internal pure returns (uint256 hour) {\n uint256 secs = timestamp % SECONDS_PER_DAY;\n hour = secs / SECONDS_PER_HOUR;\n }\n\n function getMinute(uint256 timestamp) internal pure returns (uint256 minute) {\n uint256 secs = timestamp % SECONDS_PER_HOUR;\n minute = secs / SECONDS_PER_MINUTE;\n }\n\n function getSecond(uint256 timestamp) internal pure returns (uint256 second) {\n second = timestamp % SECONDS_PER_MINUTE;\n }\n\n function addYears(uint256 timestamp, uint256 _years) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n year += _years;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp >= timestamp);\n }\n\n function addMonths(uint256 timestamp, uint256 _months) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n month += _months;\n year += (month - 1) / 12;\n month = ((month - 1) % 12) + 1;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp >= timestamp);\n }\n\n function addDays(uint256 timestamp, uint256 _days) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _days * SECONDS_PER_DAY;\n require(newTimestamp >= timestamp);\n }\n\n function addHours(uint256 timestamp, uint256 _hours) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _hours * SECONDS_PER_HOUR;\n require(newTimestamp >= timestamp);\n }\n\n function addMinutes(uint256 timestamp, uint256 _minutes) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _minutes * SECONDS_PER_MINUTE;\n require(newTimestamp >= timestamp);\n }\n\n function addSeconds(uint256 timestamp, uint256 _seconds) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _seconds;\n require(newTimestamp >= timestamp);\n }\n\n function subYears(uint256 timestamp, uint256 _years) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n year -= _years;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp <= timestamp);\n }\n\n function subMonths(uint256 timestamp, uint256 _months) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n uint256 yearMonth = year * 12 + (month - 1) - _months;\n year = yearMonth / 12;\n month = (yearMonth % 12) + 1;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp <= timestamp);\n }\n\n function subDays(uint256 timestamp, uint256 _days) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _days * SECONDS_PER_DAY;\n require(newTimestamp <= timestamp);\n }\n\n function subHours(uint256 timestamp, uint256 _hours) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _hours * SECONDS_PER_HOUR;\n require(newTimestamp <= timestamp);\n }\n\n function subMinutes(uint256 timestamp, uint256 _minutes) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _minutes * SECONDS_PER_MINUTE;\n require(newTimestamp <= timestamp);\n }\n\n function subSeconds(uint256 timestamp, uint256 _seconds) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _seconds;\n require(newTimestamp <= timestamp);\n }\n\n function diffYears(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _years) {\n require(fromTimestamp <= toTimestamp);\n (uint256 fromYear,,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);\n (uint256 toYear,,) = _daysToDate(toTimestamp / SECONDS_PER_DAY);\n _years = toYear - fromYear;\n }\n\n function diffMonths(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _months) {\n require(fromTimestamp <= toTimestamp);\n (uint256 fromYear, uint256 fromMonth,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);\n (uint256 toYear, uint256 toMonth,) = _daysToDate(toTimestamp / SECONDS_PER_DAY);\n _months = toYear * 12 + toMonth - fromYear * 12 - fromMonth;\n }\n\n function diffDays(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _days) {\n require(fromTimestamp <= toTimestamp);\n _days = (toTimestamp - fromTimestamp) / SECONDS_PER_DAY;\n }\n\n function diffHours(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _hours) {\n require(fromTimestamp <= toTimestamp);\n _hours = (toTimestamp - fromTimestamp) / SECONDS_PER_HOUR;\n }\n\n function diffMinutes(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _minutes) {\n require(fromTimestamp <= toTimestamp);\n _minutes = (toTimestamp - fromTimestamp) / SECONDS_PER_MINUTE;\n }\n\n function diffSeconds(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _seconds) {\n require(fromTimestamp <= toTimestamp);\n _seconds = toTimestamp - fromTimestamp;\n }\n}\n"
+ },
+ "contracts/constants/CircuitConstants.sol": {
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n\n/**\n * @title Circuit Constants Library\n * @notice This library defines constants representing indices used to access public signals\n * of various circuits.\n * @dev These indices map directly to specific data fields in the corresponding circuits proofs.\n */\nlibrary CircuitConstants {\n // ---------------------------\n // CREDENTIAL Circuit Constants\n // ---------------------------\n\n /**\n * @notice Index to access the hashIndex in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_HASH_INDEX_INDEX = 0;\n /**\n * @notice Index to access the hashValue in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_HASH_VALUE_INDEX = 1;\n /**\n * @notice Index to access the linkId in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_LINK_ID_INDEX = 2;\n /**\n * @notice Index to access the currentDate in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_CURRENT_DATE_INDEX = 3;\n /**\n * @notice Index to access the issuanceDate in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_ISSUANCE_DATE_INDEX = 4;\n /**\n * @notice Index to access the templateRoot in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_TEMPLATE_ROOT_INDEX = 5;\n /**\n * @notice Index to access the issuerDidHash in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_ISSUER_DID_HASH_INDEX = 6;\n /**\n * @notice Index to access the revocationNonce in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_REVOCATION_NONCE_INDEX = 7;\n}\n"
+ },
+ "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol": {
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n/**\n * @title IAnonAadhaarCircuitVerifier\n * @notice Interface for verifying AnonAadhaar circuit proofs.\n * @dev This interface defines the structure of an AnonAadhaar\n * circuit proof and exposes a function to verify such proofs.\n */\ninterface IAnonAadhaarCircuitVerifier {\n /**\n * @notice Represents an AnonAadhaar circuit proof.\n * @dev This structure encapsulates the required proof elements.\n * @param a An array of two unsigned integers representing the proof component 'a'.\n * @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n * @param c An array of two unsigned integers representing the proof component 'c'.\n * @param pubSignals An array of three unsigned integers representing the public signals associated with the proof.\n */\n struct AnonAadhaarCircuitProof {\n uint256[2] a;\n uint256[2][2] b;\n uint256[2] c;\n uint256[12] pubSignals;\n }\n\n /**\n * @notice Verifies a given AnonAadhaar circuit proof.\n * @dev This function checks the validity of the provided proof parameters.\n * @param a The 'a' component of the proof.\n * @param b The 'b' component of the proof.\n * @param c The 'c' component of the proof.\n * @param pubSignals The public signals associated with the proof.\n * @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false).\n */\n function verifyProof(\n uint256[2] calldata a,\n uint256[2][2] calldata b,\n uint256[2] calldata c,\n uint256[12] calldata pubSignals\n ) external view returns (bool isValid);\n}\n"
+ },
+ "contracts/interfaces/IAttestationValidator.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {ICertificatesValidator} from \"./ICertificatesValidator.sol\";\n\n/**\n * @dev IAttestationValidator. Interface for verification of attestations.\n */\ninterface IAttestationValidator {\n struct Attestation {\n uint256 tag;\n AttestationValue value;\n }\n\n struct AttestationValue {\n bytes protectedHeader;\n bytes unprotectedHeader;\n Payload payload;\n bytes rawPayload;\n bytes signature;\n bytes32 imageHash;\n }\n\n struct Payload {\n string moduleId;\n string digest;\n uint256 timestamp;\n bytes[] pcrs;\n bytes certificate;\n bytes[] cabundle;\n bytes publicKey;\n bytes userData;\n bytes nonce;\n }\n\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Validates the attestation\n * @param attestation bytes for the attestation\n * @return User data fields and a boolean indicating if the attestation is valid\n */\n function validateAttestation(\n bytes calldata attestation\n ) external returns (bytes memory, bytes32 imageHash, bool);\n\n /**\n * @dev Parse the attestation data and return the parsed data\n * @param attestation The attestation bytes data\n */\n function parseAttestation(\n bytes calldata attestation\n ) external pure returns (Attestation memory);\n\n /**\n * @dev Set certificates validator\n * @param validator - certificates validator\n */\n function setCertificatesValidator(ICertificatesValidator validator) external;\n}\n"
+ },
+ "contracts/interfaces/ICertificatesValidator.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/**\n * @dev ICertificatesValidator. Interface for validation of certificates.\n */\ninterface ICertificatesValidator {\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Validate the chain of certificates\n * @param certificates Chain of certificates in PEM format sorted. Root certificate is latest.\n */\n function validateChainOfCertificates(\n bytes[] calldata certificates\n ) external view returns (bool);\n\n /**\n * @dev Adds certificate verification to the contract\n * @param subjectCertificate Certificate to verify the signature with issuer public key.\n * @param issuerCertificate Certificate of the issuer.\n */\n function addCertificateVerification(\n bytes calldata subjectCertificate,\n bytes calldata issuerCertificate\n ) external;\n}\n"
+ },
+ "contracts/interfaces/ICredentialCircuitVerifier.sol": {
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n/**\n * @title ICredentialCircuitVerifier\n * @notice Interface for verifying credential circuit proofs.\n * @dev This interface defines the structure of a credential circuit proof and exposes a function to verify such proofs.\n */\ninterface ICredentialCircuitVerifier {\n /**\n * @notice Represents a credential circuit proof.\n * @dev This structure encapsulates the required proof elements.\n * @param a An array of two unsigned integers representing the proof component 'a'.\n * @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n * @param c An array of two unsigned integers representing the proof component 'c'.\n * @param pubSignals An array of three unsigned integers representing the public signals associated with the proof.\n */\n struct CredentialCircuitProof {\n uint256[2] a;\n uint256[2][2] b;\n uint256[2] c;\n uint256[8] pubSignals;\n }\n\n /**\n * @notice Verifies a given credential circuit proof.\n * @dev This function checks the validity of the provided proof parameters.\n * @param a The 'a' component of the proof.\n * @param b The 'b' component of the proof.\n * @param c The 'c' component of the proof.\n * @param pubSignals The public signals associated with the proof.\n * @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false).\n */\n function verifyProof(\n uint256[2] calldata a,\n uint256[2][2] calldata b,\n uint256[2] calldata c,\n uint256[8] calldata pubSignals\n ) external view returns (bool isValid);\n}\n"
+ },
+ "contracts/verifiers/AnonAadhaarCredentialIssuer.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IdentityLib} from \"@iden3/contracts/lib/IdentityLib.sol\";\nimport {IdentityBase} from \"@iden3/contracts/lib/IdentityBase.sol\";\nimport {IZKPVerifier} from \"@iden3/contracts/interfaces/IZKPVerifier.sol\";\nimport {IAnonAadhaarCircuitVerifier} from \"../interfaces/IAnonAadhaarCircuitVerifier.sol\";\nimport {Ownable2StepUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\n\nerror NoVerifierSet();\nerror InvalidAnonAadhaarProof();\nerror InvalidHashIndex();\nerror InvalidHashValue();\nerror InvalidNullifierSeed();\nerror InvalidTemplateRoot();\nerror InvalidIssuerDidHash();\nerror InvalidExpirationDate(uint256 expected, uint256 provided);\nerror ProofExpired();\nerror InvalidPubKeyHash();\nerror NullifierDoesNotExist();\nerror InvalidVerifierAddress();\nerror InvalidStateContractAddress();\nerror UnsupportedQrVersion(uint256 qrVersion);\nerror InvalidRevocationNonce(uint64 revocationNonce);\nerror LengthMismatch(uint256 length1, uint256 length2);\nerror NoAnonAadhaarCircuitIdFound(string circuitId);\n\nevent IssuerDidHashUpdated(uint256 issuerDidHash);\nevent TemplateRootUpdated(uint256 templateRoot);\nevent PublicKeyHashAdded(uint256 publicKeyHash);\nevent CredentialRevoked(uint256 nullifier, uint64 revocationNonce);\nevent AnonAadhaarCircuitVerifierUpdated(string circuitId, address verifierAddress);\n\n/**\n * @dev Address ownership credential issuer.\n * This issuer issues non-merklized credentials in a decentralized manner.\n */\ncontract AnonAadhaarCredentialIssuer is IdentityBase, Ownable2StepUpgradeable {\n using IdentityLib for IdentityLib.Data;\n\n string public constant VERSION = \"1.0.3\";\n string private constant defaultCircuitId = \"anon_aadhaar_v1\";\n\n struct StateInfo {\n address stateAddress;\n bytes2 idType;\n }\n \n struct CredentialProof {\n string circuitId;\n bytes proof;\n }\n\n /// @custom:storage-location erc7201:polygonid.storage.AnonAadhaarCredentialIssuer\n struct AnonAadhaarCredentialIssuerStorage {\n uint256 nullifierSeed;\n uint256 expirationTime;\n uint256 templateRoot;\n uint256 issuerDidHash;\n mapping(string circuitId => address verifier) _anonAadhaarVerifiers;\n mapping(uint256 => bool) publicKeysHashes;\n mapping(uint256 nullifier => uint64 revocationNonce) _nullifiersToRevocationNonce;\n mapping(uint256 qrVersion => bool) qrVersions;\n }\n\n // check if the hash was calculated correctly\n // keccak256(abi.encode(uint256(keccak256(\"polygonid.storage.AnonAadhaarCredentialIssuer\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant AnonAadhaarCredentialIssuerStorageLocation =\n 0x45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e00;\n\n function _getAnonAadhaarCredentialIssuerStorage()\n private\n pure\n returns (AnonAadhaarCredentialIssuerStorage storage store)\n {\n assembly {\n store.slot := AnonAadhaarCredentialIssuerStorageLocation\n }\n }\n\n /**\n * @notice Constructor that disables initializers.\n * @dev Prevents direct initialization of the implementation contract.\n */\n constructor() {\n _disableInitializers();\n }\n\n function initializeIssuer(\n uint256 nullifierSeed,\n uint256[] calldata publicKeysHashes,\n uint256[] calldata qrVersions,\n uint256 expirationTime,\n uint256 templateRoot,\n address anonAadhaarVerifier,\n StateInfo calldata stateInfo,\n address owner\n ) public initializer {\n if (anonAadhaarVerifier == address(0)) revert InvalidVerifierAddress();\n if (stateInfo.stateAddress == address(0)) revert InvalidStateContractAddress();\n\n super.initialize(stateInfo.stateAddress, stateInfo.idType);\n __Ownable_init(owner);\n\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.nullifierSeed = nullifierSeed;\n $.expirationTime = expirationTime;\n $.templateRoot = templateRoot;\n // Set the default circuit verifier\n $._anonAadhaarVerifiers[defaultCircuitId] = anonAadhaarVerifier;\n\n _addPublicKeyHashesBatch(publicKeysHashes);\n _addQrVersionBatch(qrVersions);\n }\n\n function setNullifierSeed(uint256 nullifierSeed) external onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.nullifierSeed = nullifierSeed;\n }\n\n /**\n * @notice Updates the issuer DID hash.\n * @param issuerDidHash The new issuer DID hash.\n */\n function setIssuerDidHash(uint256 issuerDidHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.issuerDidHash = issuerDidHash;\n emit IssuerDidHashUpdated(issuerDidHash);\n }\n\n function nullifierExists(uint256 nullifier) external view returns (bool) {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n return $._nullifiersToRevocationNonce[nullifier] != 0;\n }\n\n /**\n * @notice Updates the template root.\n * @param templateRoot The new template root.\n */\n function setTemplateRoot(uint256 templateRoot) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.templateRoot = templateRoot;\n emit TemplateRootUpdated(templateRoot);\n }\n\n /**\n * @notice Revoke credential and remove nullifier.\n * @param nullifier credential nullifier.\n */\n function revokeCredential(uint256 nullifier) external onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n uint64 nonce = $._nullifiersToRevocationNonce[nullifier];\n if (nonce == 0) revert NullifierDoesNotExist();\n _revokeClaimAndTransit(nonce);\n $._nullifiersToRevocationNonce[nullifier] = 0;\n emit CredentialRevoked(nullifier, nonce);\n }\n\n /**\n * @notice Adds a public key hash.\n * @param publicKeyHash The public key hash to add.\n */\n function addPublicKeyHash(uint256 publicKeyHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.publicKeysHashes[publicKeyHash] = true;\n emit PublicKeyHashAdded(publicKeyHash);\n }\n\n /**\n * @notice Adds multiple public key hashes in a batch.\n * @param publicKeysHashes The array of public key hashes to add.\n */\n function addPublicKeyHashesBatch(uint256[] calldata publicKeysHashes) public onlyOwner {\n _addPublicKeyHashesBatch(publicKeysHashes);\n }\n\n /**\n * @notice Removes a public key hash.\n * @param publicKeyHash The public key hash to remove.\n */\n function removePublicKeyHash(uint256 publicKeyHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (!$.publicKeysHashes[publicKeyHash]) {\n revert InvalidPubKeyHash();\n }\n $.publicKeysHashes[publicKeyHash] = false;\n }\n\n /**\n * @dev Updates the AnonAadhar circuit verifiers for a specific circuit identifiers.\n * @param circuitIds The AnonAadhar circuit identifiers.\n * @param verifierAddresses The new AnonAadhar circuit verifier addresses.\n */\n function updateAnonAadhaarVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) public virtual onlyOwner {\n _updateAnonAadhaarVerifiers(circuitIds, verifierAddresses);\n }\n\n /**\n * @notice Retrieves the anonAadhaar verifier address for a given circuit id.\n * @param circuitId The circuit id identifier.\n * @return The anonAadhaar verifier address.\n */\n function anonAadhaarVerifiers(string memory circuitId) external view virtual returns (address) {\n return _getAnonAadhaarCredentialIssuerStorage()._anonAadhaarVerifiers[circuitId];\n }\n\n /**\n * @notice Verifies the passport credential.\n * @param credentialProof Credential proof for the passport credential\n * @param passportSignatureProof Signature proof of the validation of the passport credential\n */\n function verifyAadhaar(\n CredentialProof memory credentialProof,\n bytes memory passportSignatureProof\n ) external {\n if (bytes(credentialProof.circuitId).length == 0) {\n revert NoAnonAadhaarCircuitIdFound(credentialProof.circuitId);\n }\n\n (\n uint256[] memory inputs,\n uint256[2] memory a1,\n uint256[2][2] memory b1,\n uint256[2] memory c1\n ) = abi.decode(credentialProof.proof, (uint256[], uint256[2], uint256[2][2], uint256[2]));\n\n IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof\n memory groth16Proof = IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof(\n a1,\n b1,\n c1,\n [\n inputs[0],\n inputs[1],\n inputs[2],\n inputs[3],\n inputs[4],\n inputs[5],\n inputs[6],\n inputs[7],\n inputs[8],\n inputs[9],\n inputs[10],\n inputs[11]\n ]\n );\n\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n address verifier = $._anonAadhaarVerifiers[credentialProof.circuitId];\n if (verifier == address(0)) {\n revert NoVerifierSet();\n }\n if (\n !IAnonAadhaarCircuitVerifier(verifier).verifyProof(\n groth16Proof.a,\n groth16Proof.b,\n groth16Proof.c,\n groth16Proof.pubSignals\n )\n ) {\n revert InvalidAnonAadhaarProof();\n }\n\n _afterProofSubmit(groth16Proof);\n }\n\n /**\n * @notice Returns the nullifier seed.\n * @return The nullifier seed.\n */\n function getNullifierSeed() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().nullifierSeed;\n }\n\n /**\n * @notice Returns if the public key hash exists.\n * @param publicKeyHash The public key hash to check.\n * @return True if the public key hash exists, false otherwise.\n */\n function publicKeyHashExists(uint256 publicKeyHash) public view returns (bool) {\n return _getAnonAadhaarCredentialIssuerStorage().publicKeysHashes[publicKeyHash];\n }\n\n /**\n * @notice Returns the template root.\n * @return The template root.\n */\n function getTemplateRoot() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().templateRoot;\n }\n\n /**\n * @notice Returns the expiration time.\n * @return The expiration time.\n */\n function getExpirationTime() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().expirationTime;\n }\n\n /**\n * @notice Adds a QR version.\n * @param qrVersion The QR version to add.\n */\n function addQrVersion(uint256 qrVersion) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.qrVersions[qrVersion] = true;\n }\n\n /**\n * @notice Adds multiple QR versions in a batch.\n * @param qrVersions The array of QR versions to add.\n */\n function addQrVersionBatch(uint256[] calldata qrVersions) public onlyOwner {\n _addQrVersionBatch(qrVersions);\n }\n\n /**\n * @notice Removes a QR version.\n * @param qrVersion The QR version to remove.\n */\n function removeQrVersion(uint256 qrVersion) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (!$.qrVersions[qrVersion]) revert UnsupportedQrVersion(qrVersion);\n $.qrVersions[qrVersion] = false;\n }\n\n /**\n * @notice Checks if a QR version is supported.\n * @param qrVersion The QR version to check.\n * @return True if the QR version is supported, false otherwise.\n */\n function qrVersionSupported(uint256 qrVersion) public view returns (bool) {\n return _getAnonAadhaarCredentialIssuerStorage().qrVersions[qrVersion];\n }\n\n /**\n * @notice Revokes a claim and transit the state.\n * @param nonce The nonce of the claim to revoke.\n */\n function _revokeClaimAndTransit(uint64 nonce) internal {\n _getIdentityBaseStorage().identity.revokeClaim(nonce);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _addPublicKeyHashesBatch(uint256[] calldata publicKeysHashes) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n for (uint256 i = 0; i < publicKeysHashes.length; i++) {\n $.publicKeysHashes[publicKeysHashes[i]] = true;\n emit PublicKeyHashAdded(publicKeysHashes[i]);\n }\n }\n\n function _updateAnonAadhaarVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (circuitIds.length != verifierAddresses.length) {\n revert LengthMismatch(circuitIds.length, verifierAddresses.length);\n }\n for (uint256 i = 0; i < circuitIds.length; i++) {\n $._anonAadhaarVerifiers[circuitIds[i]] = verifierAddresses[i];\n\n emit AnonAadhaarCircuitVerifierUpdated(circuitIds[i], verifierAddresses[i]);\n }\n }\n\n function _afterProofSubmit(\n IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory proof\n ) internal {\n uint256 pubKeyHash = proof.pubSignals[0];\n uint256 nullifier = proof.pubSignals[1];\n uint256 hashIndex = proof.pubSignals[2];\n uint256 hashValue = proof.pubSignals[3];\n uint256 issuanceDate = proof.pubSignals[4];\n uint256 expirationDate = proof.pubSignals[5];\n uint256 qrVersion = proof.pubSignals[6];\n uint256 nullifierSeed = proof.pubSignals[7];\n uint256 signalHash = proof.pubSignals[8];\n uint256 templateRoot = proof.pubSignals[9];\n uint256 issuerDidHash = proof.pubSignals[10];\n uint64 revocationNonce = uint64(proof.pubSignals[11]);\n\n _validatePublicInputs(\n hashIndex,\n hashValue,\n nullifier,\n pubKeyHash,\n nullifierSeed,\n issuanceDate,\n expirationDate,\n templateRoot,\n issuerDidHash,\n qrVersion\n );\n _setNullifier(nullifier, revocationNonce);\n _addHashAndTransit(hashIndex, hashValue);\n }\n\n // solhint-disable-next-line code-complexity\n function _validatePublicInputs(\n uint256 hashIndex,\n uint256 hashValue,\n uint256 nullifier,\n uint256 pubKeyHash,\n uint256 nullifierSeed,\n uint256 issuanceDate,\n uint256 expirationDate,\n uint256 templateRoot,\n uint256 issuerDidHash,\n uint256 qrVersion\n ) internal view {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (hashIndex == 0) revert InvalidHashIndex();\n if (hashValue == 0) revert InvalidHashValue();\n if (nullifierSeed != $.nullifierSeed) revert InvalidNullifierSeed();\n if (templateRoot != $.templateRoot) revert InvalidTemplateRoot();\n if (issuerDidHash != $.issuerDidHash) revert InvalidIssuerDidHash();\n\n uint256 expectedExpiration = issuanceDate + $.expirationTime;\n if (expirationDate != expectedExpiration) {\n revert InvalidExpirationDate(expectedExpiration, expirationDate);\n }\n if (expirationDate <= block.timestamp) revert ProofExpired();\n if (!$.publicKeysHashes[pubKeyHash]) revert InvalidPubKeyHash();\n if (!$.qrVersions[qrVersion]) revert UnsupportedQrVersion(qrVersion);\n }\n\n function _addHashAndTransit(uint256 hi, uint256 hv) internal {\n _getIdentityBaseStorage().identity.addClaimHash(hi, hv);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _setNullifier(uint256 nullifier, uint64 revocationNonce) private {\n if (revocationNonce == 0) revert InvalidRevocationNonce(revocationNonce);\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n uint64 existingNonce = $._nullifiersToRevocationNonce[nullifier];\n if (existingNonce != 0) {\n _getIdentityBaseStorage().identity.revokeClaim(existingNonce);\n emit CredentialRevoked(nullifier, existingNonce);\n }\n $._nullifiersToRevocationNonce[nullifier] = revocationNonce;\n }\n\n function _addQrVersionBatch(uint256[] calldata qrVersions) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n for (uint256 i = 0; i < qrVersions.length; i++) {\n $.qrVersions[qrVersions[i]] = true;\n }\n }\n}\n"
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha1.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha1 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 17619978066981023815786197539891834595467101800168005440602760726252419224182;\n uint256 constant deltax2 = 18977671751559096556952089773959459997838190076805335585523439415828663041091;\n uint256 constant deltay1 = 20908933493580347546254738498174154838704896433856769222253193499541811828688;\n uint256 constant deltay2 = 14228223910638183943848630972622539108882152661926856215951516846313437227100;\n\n \n uint256 constant IC0x = 18996279980038711758193690354940715782561235380342286407554135740201513779279;\n uint256 constant IC0y = 11625887395259635500670464496187717958964706644081328357030137540193674702015;\n \n uint256 constant IC1x = 2803372302542279061992801806634278926291194002619610390291532752624573014173;\n uint256 constant IC1y = 10299540508560758826097485034731152593441586555541996535916675882907375474435;\n \n uint256 constant IC2x = 3515557068537248154485087584130170954856304985271889186452891924457640062970;\n uint256 constant IC2y = 1470817234371769592572885478845544364540877905963971376961793016405008053683;\n \n uint256 constant IC3x = 9882623278822854916070400357014056422896394552342808356843508747816984172644;\n uint256 constant IC3y = 15531717559181484462850765055876863273664930315712089064242339049088256330437;\n \n uint256 constant IC4x = 1901898694368678166577209587685345696272596482922653049767926510562298598974;\n uint256 constant IC4y = 5058572446650720343780896019894709715665377022988535030242875984721308263761;\n \n uint256 constant IC5x = 20431838211546078848142643584396353147225169357005485193415850116721939313698;\n uint256 constant IC5y = 12674687627463988134904336509745795614944363742165672249109257935456985648885;\n \n uint256 constant IC6x = 4014435991936218046726515736305912875209372027501216181172190606316328747472;\n uint256 constant IC6y = 16912585017352105870989796655854968791219729237634485846585064696134374045934;\n \n uint256 constant IC7x = 12553131107985421444412332178956153560186927617121861418939287320178940975682;\n uint256 constant IC7y = 15211374507967162250825030127268522561555464722253667504386597832287358118777;\n \n uint256 constant IC8x = 9360822385172522643659404900386728650189826239156564955589551865188818779244;\n uint256 constant IC8y = 1600740977972980205306895108993336563635329497019830065817810193590153972774;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n"
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha224.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha224 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 11528676451769479893890586016735137918738468325373806791162804722335540091687;\n uint256 constant deltax2 = 1669837297114499788327298581040767838561450127612980516405627911946405462534;\n uint256 constant deltay1 = 6941559998409292029643061692869111692962972983639467708165579202057066355393;\n uint256 constant deltay2 = 5830426388149171192237417426123628387055857734312228139923031685962780158683;\n\n \n uint256 constant IC0x = 7956549064730906111377240031143142340365041322388677884335874178877686787764;\n uint256 constant IC0y = 21790724438154385202050210979362691842601057366517795997725819221691066711755;\n \n uint256 constant IC1x = 194496735259530299748406225961144873675065744182291314773378155732660624785;\n uint256 constant IC1y = 11997520324628331139758497735152902564190894765922626854425531937009442055993;\n \n uint256 constant IC2x = 20715659899206363009959001352152706938315031879094658313760729922559866072687;\n uint256 constant IC2y = 7206931389654884759550699855892139536019290824089073066664826074006671238130;\n \n uint256 constant IC3x = 15647600021508609611386466189009105815365382348025150745900556253207448104416;\n uint256 constant IC3y = 21505866779139736379603548820171953204904071774611582301872666143749664223782;\n \n uint256 constant IC4x = 20755365119539793284398369809183714774718274129718886008840939250709368056443;\n uint256 constant IC4y = 1514096099909968992998399649590292902743246116759867014081902827133607740031;\n \n uint256 constant IC5x = 546503567340616503487627262812738482343972115809910511635137549145784523079;\n uint256 constant IC5y = 19642933456728346239715412395526737799407086369371836139030446410313981127143;\n \n uint256 constant IC6x = 8655387554042588479764841421113461904648339947579594888232313481540140210605;\n uint256 constant IC6y = 6194582962607983379640117680151386004082379702276643252309562756392639795036;\n \n uint256 constant IC7x = 19998957772364520049216030643423539846174804959493071837156234560114053372045;\n uint256 constant IC7y = 7876066213188359986267785706274504001460175706745828533890570001500672413722;\n \n uint256 constant IC8x = 17919646429039771684856980550026060820137724553201143039316157510821681334959;\n uint256 constant IC8y = 12252744369277572141619541598958408920185159640281676168728109026113461424943;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n"
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha256.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha256 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 7108172092573882105714150420819903874929273543981336077096548575233836698051;\n uint256 constant deltax2 = 9695439068955503176000162189209453260970522179427226826392485950884732033729;\n uint256 constant deltay1 = 16624583325771504903535054637337144476996725989113711836927112345441013919930;\n uint256 constant deltay2 = 19276965844456483080300510857160492253225414152970648735893251665359428236630;\n\n \n uint256 constant IC0x = 5807073784152025986669718972725067491508529549260211827791183407948915436053;\n uint256 constant IC0y = 3153946873969499332822384811010472154710578920431675755800464865969736663036;\n \n uint256 constant IC1x = 5283721587798488023915095641638604156996041660509251368562130109756059799599;\n uint256 constant IC1y = 2251445930270611158926192324108159716803841205251031703916621053847441007382;\n \n uint256 constant IC2x = 21407052562448988952738358426382390833296254762259827778796379478555008692000;\n uint256 constant IC2y = 18591747716383551089930777925944581376763038844729833670184573014967075693963;\n \n uint256 constant IC3x = 16064178344486809248644271655972142215473007569225250956257403428941755984216;\n uint256 constant IC3y = 16062675701931919990917355706503482044477775920236427526503412929529399918562;\n \n uint256 constant IC4x = 1546275417863397238581225548343538707005318324353758499244112897265836238229;\n uint256 constant IC4y = 13063754323861482376286995035193283748950215952642567157801002274791495918786;\n \n uint256 constant IC5x = 1141079313021565119492833931790595578183633299696035861651276524275111123783;\n uint256 constant IC5y = 7166084310153930480927638721172548523660750971204544078450628343211919242925;\n \n uint256 constant IC6x = 1971179529908889456121637385865871080294916196885258489908146419781659282160;\n uint256 constant IC6y = 50579574438141375186398099028392679205914531546519480875621917297963856441;\n \n uint256 constant IC7x = 9100199755459715713519393317043280025615287889744180275461286004332778013036;\n uint256 constant IC7y = 7061165107258796431766606546368143418686100123207385991264212484194753568741;\n \n uint256 constant IC8x = 17364972641898162599433694008538623445213336000800890562234624733284246493780;\n uint256 constant IC8y = 12746849599984592234975470756593776746553513502857491451188960360675308816217;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n"
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha384.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha384 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 19655267862703232013829558435145045870843976930317590302824065146843396793287;\n uint256 constant deltax2 = 14195549125710551284606145175737530478528743926899571023260883255716761594395;\n uint256 constant deltay1 = 12351506351799819269703309449630651195742753280534835077105389539461715372776;\n uint256 constant deltay2 = 7757467232203449399932908423406007245263352828411880209643256057184653017967;\n\n \n uint256 constant IC0x = 11270188442615110054592905685303866070211371561895152828128613979248055308430;\n uint256 constant IC0y = 17094828042062504652619232971444441284630915101777029406911574231991586336724;\n \n uint256 constant IC1x = 18751691849380434759742123152792239506083151498563933974092309240285734437188;\n uint256 constant IC1y = 20049688398989672878619117574546912141000756138423254830622095575650209521;\n \n uint256 constant IC2x = 5938392327398300804986545026506195748618068681474530419676855339051724354681;\n uint256 constant IC2y = 8496173201972055300493072974747730402044794614021033901250025816096583531491;\n \n uint256 constant IC3x = 18000232485605953449068588695892070696902807064395147271058762007105019126334;\n uint256 constant IC3y = 13923155271741522539404325966123937970365444537725373655255388853887141798562;\n \n uint256 constant IC4x = 18010446893195512579759629398857801006052931911571641584652135841768992002694;\n uint256 constant IC4y = 8276620288288895394093542524347952614344582824042813385149643354238997853456;\n \n uint256 constant IC5x = 1772200220203916441938998769520117542016198278365528522982894992382620434050;\n uint256 constant IC5y = 10763253272545780012285573652711822860500927391871532508832349175799702957899;\n \n uint256 constant IC6x = 2845166560779510830835994118050041826820064658573423743433800926181089860866;\n uint256 constant IC6y = 11211513421119271124146455847515997833727893766507544722895265116859776449715;\n \n uint256 constant IC7x = 20144845268222422495539907720657978943445065896623586123199733159048326999760;\n uint256 constant IC7y = 19718463288658080919803732449300100569607034448022178085387100796258626298784;\n \n uint256 constant IC8x = 7058482481805554138205851299679309168316653411824837725236270182057684890239;\n uint256 constant IC8y = 10896475570578198455810015516790890845312936312589495726969700601169379853378;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n"
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha512.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha512 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 4935033327587461782389399627854920991236616908810469118714751732342275061446;\n uint256 constant deltax2 = 15040958817808294539935544369419776183117239349380901163111409504958017663844;\n uint256 constant deltay1 = 2007224316571344161465238472801840878489508282789288888858559848605646240848;\n uint256 constant deltay2 = 18559749753958183583592478532149214224703016975298333460861915544653661358144;\n\n \n uint256 constant IC0x = 6775054402228643716255802334734986948682682430518279486253196481989309566722;\n uint256 constant IC0y = 1256219047132642118025609848816390346107005389894625383105806516968349425164;\n \n uint256 constant IC1x = 10110553127718601502494156062027021792279415695007706303064445895305746796972;\n uint256 constant IC1y = 19898978399161065879464846829838064639432473397440657393515694239075549459414;\n \n uint256 constant IC2x = 14560187434499034871351467627171103172625120844651854114827556003788720970417;\n uint256 constant IC2y = 14936108571712972245301749671097039789606832305941080664225776268655751656953;\n \n uint256 constant IC3x = 14059919891828809017722021432418231931402595098208687542598123338150745640383;\n uint256 constant IC3y = 5287189187302449882380587305482098132045305570686129384654017642428856537257;\n \n uint256 constant IC4x = 6706949763853995059505242437648432929838165367162467746373417384817649939970;\n uint256 constant IC4y = 2015510185648144270749764376656342256126280301977931907354368277198561816787;\n \n uint256 constant IC5x = 18546765018009385869253392738080678323434493864448585402685748329856156497557;\n uint256 constant IC5y = 9710848189318571196518271373510494268801356872445810355853168058492459988199;\n \n uint256 constant IC6x = 544902746110577324329364298650693667366017259389786868738072664789424802924;\n uint256 constant IC6y = 19862963901307499231830066453364234728952499255639862660100552186005791941065;\n \n uint256 constant IC7x = 9061076520764351620379515690585690079034134082404925699620585204866352078475;\n uint256 constant IC7y = 19484642542605957456985051447710501567528279902650299867448130248236291732801;\n \n uint256 constant IC8x = 9914119697422775374510091216988900063691223646782798037580428451954809638249;\n uint256 constant IC8y = 12901895327948330263975865343040217195073424381052892161417037093019981392204;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n"
+ },
+ "contracts/verifiers/PassportCredentialIssuer.sol": {
+ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport {EIP712Upgradeable} from \"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\";\nimport {EnumerableSet} from \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport {IdentityLib} from \"@iden3/contracts/lib/IdentityLib.sol\";\nimport {IdentityBase} from \"@iden3/contracts/lib/IdentityBase.sol\";\nimport {ICredentialCircuitVerifier} from \"../interfaces/ICredentialCircuitVerifier.sol\";\nimport {CircuitConstants} from \"../constants/CircuitConstants.sol\";\nimport {Ownable2StepUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport {DateTime} from \"@quant-finance/solidity-datetime/contracts/DateTime.sol\";\nimport {IAttestationValidator} from \"../interfaces/IAttestationValidator.sol\";\n\nerror InvalidLinkId(uint256 linkId1, uint256 linkId2);\nerror InvalidHashIndex(uint256 hashIndex);\nerror InvalidHashValue(uint256 hashValue);\nerror InvalidTemplateRoot(uint256 templateRoot, uint256 expectedTemplateRoot);\nerror IssuanceDateExpired(uint256 issuanceDate);\nerror IssuanceDateInFuture(uint256 issuanceDate);\nerror CurrentDateExpired(uint256 currentDate);\nerror CurrentDateInFuture(uint256 currentDate);\nerror NullifierDoesNotExist(uint256 nullifier);\nerror LengthMismatch(uint256 length1, uint256 length2);\nerror NoVerifierSet();\nerror InvalidCredentialProof();\nerror InvalidPassportSignatureProof();\nerror InvalidSignerPassportSignatureProof(address signer);\nerror NoCredentialCircuitIdFound(string circuitId);\nerror InvalidTransactor(address transactor);\nerror ImageHashIsNotWhitelisted(bytes32 imageHash);\nerror InvalidAttestation();\nerror InvalidSignerAddress();\nerror InvalidAttestationUserDataLength();\nerror InvalidIssuerDidHash();\nerror InvalidRevocationNonce(uint64 revocationNonce);\n\n/**\n * @dev Address ownership credential issuer.\n * This issuer issue non-merklized credentials decentralized.\n */\ncontract PassportCredentialIssuer is IdentityBase, EIP712Upgradeable, Ownable2StepUpgradeable {\n using IdentityLib for IdentityLib.Data;\n using ECDSA for bytes32;\n using EnumerableSet for EnumerableSet.AddressSet;\n using DateTime for uint256;\n\n /**\n * @dev Version of the contract\n */\n string public constant VERSION = \"1.0.3\";\n\n /**\n * @dev Version of EIP 712 domain\n */\n string public constant DOMAIN_VERSION = \"1.0.0\";\n\n uint256 private constant DATE_20TH_CENTURY = 500000;\n\n /**\n * @dev PassportCredential message data type hash\n */\n bytes32 public constant PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH =\n keccak256(\"PassportCredential(uint256 linkId,uint256 nullifier)\");\n\n struct StateInfo {\n address stateAddress;\n bytes2 idType;\n }\n\n struct PassportCredentialMessage {\n uint256 linkId;\n uint256 nullifier;\n }\n\n struct PassportSignatureProof {\n PassportCredentialMessage passportCredentialMsg;\n bytes signature;\n }\n\n struct CredentialProof {\n string circuitId;\n bytes proof;\n }\n\n struct ProofInputs {\n uint256 hashIndex;\n uint256 hashValue;\n uint256 issuanceDate;\n uint256 currentDate;\n uint256 templateRoot;\n uint256 linkIdCredentialProof;\n uint64 revocationNonce;\n uint256 issuerDidHash;\n }\n\n /// @custom:storage-location erc7201:polygonid.storage.PassportCredentialIssuer\n struct PassportCredentialIssuerStorage {\n uint256 _expirationTime;\n uint256 _templateRoot;\n uint256 _maxFutureTime;\n mapping(string circuitId => address verifier) _credentialVerifiers;\n EnumerableSet.AddressSet _signers;\n IAttestationValidator _attestationValidator;\n mapping(bytes32 imageHash => bool isApproved) _imageHashesWhitelist;\n EnumerableSet.AddressSet _transactors;\n mapping(uint256 nullifier => uint64 revocationNonce) _nullifiersToRevocationNonce;\n uint256 _issuerDidHash;\n }\n\n // check if the hash was calculated correctly\n // keccak256(abi.encode(uint256(keccak256(\"polygonid.storage.PassportCredentialIssuer\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant PassportCredentialIssuerStorageLocation =\n 0x405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad300;\n\n function _getPassportCredentialIssuerStorage()\n private\n pure\n returns (PassportCredentialIssuerStorage storage store)\n {\n assembly {\n store.slot := PassportCredentialIssuerStorageLocation\n }\n }\n\n /**\n * @notice Emitted when a credential circuit verifier is updated.\n * @param circuitId The credential circuit id.\n * @param verifier The new verifier address for the credential circuit.\n */\n event CredentialCircuitVerifierUpdated(string circuitId, address verifier);\n /**\n * @notice Emitted when the expiration time is updated.\n * @param expirationTime The new expiration time.\n */\n event ExpirationTimeUpdated(uint256 expirationTime);\n /**\n * @notice Emitted when the template root is updated.\n * @param tampletRoot The new template root.\n */\n event TemplateRootUpdated(uint256 tampletRoot);\n /**\n * @notice Emitted when a new signer is added.\n * @param signer The signer address.\n */\n event SignerAdded(address signer);\n /**\n * @notice Emitted when a new transactor is added.\n * @param transactor The transactor address.\n */\n event TransactorAdded(address transactor);\n /**\n * @notice Emitted when a credential is revoked.\n * @param revocationNonce The revocation nonce of the revoked credential.\n */\n event CredentialRevoked(uint256 nullifier, uint64 revocationNonce);\n /**\n * @notice Emitted when the max future time is updated.\n * @param maxFutureTime The new max future time.\n */\n event MaxFutureTimeUpdated(uint256 maxFutureTime);\n\n // ====================================================\n // Constructor\n // ====================================================\n\n /**\n * @notice Constructor that disables initializers.\n * @dev Prevents direct initialization of the implementation contract.\n */\n constructor() {\n _disableInitializers();\n }\n\n /**\n * @dev Throws if called by any account other than transactors.\n */\n modifier onlyTransactors() {\n _checkTransactor();\n _;\n }\n\n // ====================================================\n // Initializer\n // ====================================================\n\n function initializeIssuer(\n uint256 expirationTime,\n uint256 maxFutureTime,\n uint256 templateRoot,\n string[] calldata credentialCircuitIds,\n address[] calldata credentialVerifierAddresses,\n StateInfo calldata stateInfo,\n address owner,\n IAttestationValidator validator\n ) public initializer {\n super.initialize(stateInfo.stateAddress, stateInfo.idType);\n __Ownable_init(owner);\n\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n $._expirationTime = expirationTime;\n $._maxFutureTime = maxFutureTime;\n $._templateRoot = templateRoot;\n $._attestationValidator = validator;\n\n __EIP712_init(\"PassportIssuerV1\", DOMAIN_VERSION);\n _updateCredentialVerifiers(credentialCircuitIds, credentialVerifierAddresses);\n }\n\n function addSigner(bytes memory attestation) public onlyTransactors {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n\n (bytes memory userData, bytes32 imageHash, bool validated) = $\n ._attestationValidator\n .validateAttestation(attestation);\n\n if (!isWhitelistedImageHash(imageHash)) {\n revert ImageHashIsNotWhitelisted(imageHash);\n }\n\n if (!validated) {\n revert InvalidAttestation();\n }\n\n if (userData.length < 20) {\n revert InvalidAttestationUserDataLength();\n }\n\n // 1. decode user data\n address userDataDecoded;\n assembly {\n userDataDecoded := mload(add(userData, 20))\n }\n\n if (userDataDecoded == address(0)) {\n revert InvalidSignerAddress();\n }\n\n // 2. add signer\n $._signers.add(userDataDecoded);\n emit SignerAdded(userDataDecoded);\n }\n\n /**\n * @notice Retrieves the signers.\n */\n function getSigners() external view returns (address[] memory) {\n return _getPassportCredentialIssuerStorage()._signers.values();\n }\n\n function addTransactor(address transactor) public onlyOwner {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n $._transactors.add(transactor);\n emit TransactorAdded(transactor);\n }\n\n /**\n * @notice Retrieves the transactors.\n */\n function getTransactors() external view returns (address[] memory) {\n return _getPassportCredentialIssuerStorage()._transactors.values();\n }\n\n /**\n * @notice Retrieves the expiration time.\n * @return The expiration time.\n */\n function getExpirationTime() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._expirationTime;\n }\n\n /**\n * @notice Sets the expiration time.\n * @param expirationTime The new expiration time.\n */\n function setExpirationTime(uint256 expirationTime) external onlyOwner {\n _getPassportCredentialIssuerStorage()._expirationTime = expirationTime;\n emit ExpirationTimeUpdated(expirationTime);\n }\n\n /**\n * @notice Retrieves the template root.\n * @return The template root.\n */\n function getTemplateRoot() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._templateRoot;\n }\n\n /**\n * @notice Sets the template root.\n * @param templateRoot The new template root.\n */\n function setTemplateRoot(uint256 templateRoot) external onlyOwner {\n _getPassportCredentialIssuerStorage()._templateRoot = templateRoot;\n emit TemplateRootUpdated(templateRoot);\n }\n\n /**\n * @notice Retrieves the max future time.\n * @return The max future time.\n */\n function getMaxFutureTime() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._maxFutureTime;\n }\n\n /**\n * @notice Sets the max future time.\n * @param maxFutureTime The new max future time.\n */\n function setMaxFutureTime(uint256 maxFutureTime) external onlyOwner {\n _getPassportCredentialIssuerStorage()._maxFutureTime = maxFutureTime;\n emit MaxFutureTimeUpdated(maxFutureTime);\n }\n\n /**\n * @dev Set attestation validator\n * @param validator - attestation validator\n */\n function setAttestationValidator(IAttestationValidator validator) external onlyOwner {\n _getPassportCredentialIssuerStorage()._attestationValidator = validator;\n }\n\n /**\n * @dev Updates the credential circuit verifiers for a specific circuit identifiers.\n * @param circuitIds The credential circuit identifiers.\n * @param verifierAddresses The new credential circuit verifier addresses.\n */\n function updateCredentialVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) public virtual onlyOwner {\n _updateCredentialVerifiers(circuitIds, verifierAddresses);\n }\n\n /**\n * @notice Retrieves the credential verifier address for a given circuit id.\n * @param circuitId The circuit id identifier.\n * @return The credential verifier address.\n */\n function credentialVerifiers(string memory circuitId) external view virtual returns (address) {\n return _getPassportCredentialIssuerStorage()._credentialVerifiers[circuitId];\n }\n\n /**\n * @notice Revoke credential and remove nullifier.\n * @param nullifier credential nullifier.\n */\n function revokeCredential(uint256 nullifier) external onlyOwner {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n uint64 nonce = $._nullifiersToRevocationNonce[nullifier];\n if (nonce == 0) {\n revert NullifierDoesNotExist(nullifier);\n }\n _revokeClaimAndTransit(nonce);\n $._nullifiersToRevocationNonce[nullifier] = 0;\n emit CredentialRevoked(nullifier, nonce);\n }\n\n /**\n * @notice Retrieves wether the nullifier exists.\n * @param nullifier The nullifier to check.\n * @return Wether the nullifier exists.\n */\n function nullifierExists(uint256 nullifier) external view returns (bool) {\n uint64 nonce = _getPassportCredentialIssuerStorage()._nullifiersToRevocationNonce[\n nullifier\n ];\n return nonce != 0;\n }\n\n /**\n * @notice Verifies the passport credential.\n * @param credentialProof Credential proof for the passport credential\n * @param passportSignatureProof Signature proof of the validation of the passport credential\n */\n function verifyPassport(\n CredentialProof memory credentialProof,\n bytes memory passportSignatureProof\n ) external {\n if (bytes(credentialProof.circuitId).length == 0) {\n revert NoCredentialCircuitIdFound(credentialProof.circuitId);\n }\n\n (\n uint256[] memory inputs1,\n uint256[2] memory a1,\n uint256[2][2] memory b1,\n uint256[2] memory c1\n ) = abi.decode(credentialProof.proof, (uint256[], uint256[2], uint256[2][2], uint256[2]));\n\n ICredentialCircuitVerifier.CredentialCircuitProof\n memory credentialCircuitProof = ICredentialCircuitVerifier.CredentialCircuitProof(\n a1,\n b1,\n c1,\n [\n inputs1[0],\n inputs1[1],\n inputs1[2],\n inputs1[3],\n inputs1[4],\n inputs1[5],\n inputs1[6],\n inputs1[7]\n ]\n );\n\n PassportSignatureProof memory passportSignatureProofDecoded = abi.decode(\n passportSignatureProof,\n (PassportSignatureProof)\n );\n\n _verifyPassportCredential(\n credentialProof.circuitId,\n credentialCircuitProof,\n passportSignatureProofDecoded\n );\n }\n\n /**\n * @dev Checks if imageHash of the enclave is whitelisted\n * @param imageHash The imageHash of the enclave\n * @return True if imageHash is whitelisted, otherwise returns false\n */\n function isWhitelistedImageHash(bytes32 imageHash) public view virtual returns (bool) {\n return _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash];\n }\n\n /**\n * @dev Adds an imageHash of the enclave to the whitelist\n * @param imageHash The imageHash of the enclave to add\n */\n function addImageHashToWhitelist(bytes32 imageHash) public onlyOwner {\n _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash] = true;\n }\n\n /**\n * @dev Removes an imageHash of the enclave from the whitelist\n * @param imageHash The imageHash of the enclave to remove\n */\n function removeImageHashFromWhitelist(bytes32 imageHash) public onlyOwner {\n _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash] = false;\n }\n\n /**\n * @dev Removes a signer from the list of signers\n * @param signer The address of the signer to remove\n */\n function removeSigner(address signer) external onlyOwner {\n _getPassportCredentialIssuerStorage()._signers.remove(signer);\n }\n\n /**\n * @dev Removes a transactor from the list of transactors\n * @param transactor The address of the transactor to remove\n */\n function removeTransactor(address transactor) external onlyOwner {\n _getPassportCredentialIssuerStorage()._transactors.remove(transactor);\n }\n\n /**\n * @notice Retrieves the issuer DID hash.\n * @return The issuer DID hash.\n */\n function getIssuerDIDHash() external view returns (uint256) {\n return _getPassportCredentialIssuerStorage()._issuerDidHash;\n }\n\n /**\n * @notice Updates the issuer DID hash.\n * @param issuerDidHash The new issuer DID hash.\n */\n function setIssuerDIDHash(uint256 issuerDidHash) external onlyOwner {\n _getPassportCredentialIssuerStorage()._issuerDidHash = issuerDidHash;\n }\n\n function _checkTransactor() internal view {\n if (!_getPassportCredentialIssuerStorage()._transactors.contains(_msgSender())) {\n revert InvalidTransactor(_msgSender());\n }\n }\n\n function _verifyPassportCredential(\n string memory credentialCircuitId,\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof,\n PassportSignatureProof memory passportSignatureProof\n ) internal {\n _verifyCredentialProof(credentialCircuitId, credentialCircuitProof);\n _verifySignature(passportSignatureProof);\n _afterProofsSubmit(credentialCircuitProof, passportSignatureProof);\n }\n\n function _validatePublicInputs(\n uint256 hashIndex,\n uint256 hashValue,\n uint256 issuanceDate,\n uint256 currentDate,\n uint256 templateRoot,\n uint256 linkIdCredentialProof,\n uint256 linkIdSignature,\n uint256 nullifier,\n uint256 issuerDidHash\n ) internal view {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n if (hashIndex == 0) revert InvalidHashIndex(hashIndex);\n if (hashValue == 0) revert InvalidHashValue(hashValue);\n\n if (templateRoot != $._templateRoot)\n revert InvalidTemplateRoot(templateRoot, $._templateRoot);\n\n if (linkIdSignature != linkIdCredentialProof)\n revert InvalidLinkId(linkIdSignature, linkIdCredentialProof);\n\n uint256 currentDateWithFullYear;\n // currentDate is YYMMDD format\n if (currentDate > DATE_20TH_CENTURY) {\n // 19xx\n currentDateWithFullYear = currentDate + 19000000;\n } else {\n // 20xx\n currentDateWithFullYear = currentDate + 20000000;\n }\n\n // This scope was added to avoid stack too deep error\n // scope: verify if currentDate is in time range\n {\n (uint256 year, uint256 month, uint256 day) = DateTime.timestampToDate(\n block.timestamp - $._expirationTime\n );\n uint256 minimumExpectedCurrentDate = year * 10000 + month * 100 + day;\n if (minimumExpectedCurrentDate > currentDateWithFullYear) {\n revert CurrentDateExpired(currentDate);\n }\n (uint256 futureYear, uint256 futureMonth, uint256 futureDay) = DateTime.timestampToDate(\n block.timestamp + $._maxFutureTime\n );\n uint256 futureDate = futureYear * 10000 + futureMonth * 100 + futureDay;\n if (currentDateWithFullYear > futureDate) {\n revert CurrentDateInFuture(currentDate);\n }\n }\n\n if (issuanceDate + $._expirationTime < block.timestamp)\n revert IssuanceDateExpired(issuanceDate);\n if (issuanceDate > block.timestamp + $._maxFutureTime)\n revert IssuanceDateInFuture(issuanceDate);\n\n if ($._issuerDidHash != issuerDidHash) revert InvalidIssuerDidHash();\n }\n\n function _addHashAndTransit(uint256 hi, uint256 hv) internal {\n _getIdentityBaseStorage().identity.addClaimHash(hi, hv);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _revokeClaimAndTransit(uint64 nonce) internal {\n _getIdentityBaseStorage().identity.revokeClaim(nonce);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _setNullifier(uint256 nullifier, uint64 revocationNonce) internal {\n if (revocationNonce == 0) revert InvalidRevocationNonce(revocationNonce);\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n uint64 existingNonce = $._nullifiersToRevocationNonce[nullifier];\n if (existingNonce != 0) {\n _getIdentityBaseStorage().identity.revokeClaim(existingNonce);\n emit CredentialRevoked(nullifier, existingNonce);\n }\n $._nullifiersToRevocationNonce[nullifier] = revocationNonce;\n }\n\n function _verifyCredentialProof(\n string memory credentialCircuitId,\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof\n ) internal view {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n address verifier = $._credentialVerifiers[credentialCircuitId];\n if (verifier == address(0)) {\n revert NoVerifierSet();\n }\n if (\n !ICredentialCircuitVerifier(verifier).verifyProof(\n credentialCircuitProof.a,\n credentialCircuitProof.b,\n credentialCircuitProof.c,\n credentialCircuitProof.pubSignals\n )\n ) {\n revert InvalidCredentialProof();\n }\n }\n\n function _verifySignature(PassportSignatureProof memory passportSignatureProof) internal view {\n (bool isValid, address recovered) = _recoverPassportSignatureProofSigner(\n passportSignatureProof.passportCredentialMsg,\n passportSignatureProof.signature\n );\n if (!isValid) {\n revert InvalidPassportSignatureProof();\n }\n if (!_getPassportCredentialIssuerStorage()._signers.contains(recovered)) {\n revert InvalidSignerPassportSignatureProof(recovered);\n }\n }\n\n function _recoverPassportSignatureProofSigner(\n PassportCredentialMessage memory message,\n bytes memory signature\n ) internal view virtual returns (bool, address) {\n bytes32 hashTypedData = _hashTypedDataV4(\n keccak256(\n abi.encode(PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH, message.linkId, message.nullifier)\n )\n );\n\n (address recovered, ECDSA.RecoverError err, ) = hashTypedData.tryRecover(signature);\n\n return (err == ECDSA.RecoverError.NoError, recovered);\n }\n\n function _afterProofsSubmit(\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof,\n PassportSignatureProof memory passportSignatureProof\n ) internal {\n ProofInputs memory inputs = _extractProofInputs(credentialCircuitProof);\n\n uint256 nullifier = passportSignatureProof.passportCredentialMsg.nullifier;\n _validatePublicInputs(\n inputs.hashIndex,\n inputs.hashValue,\n inputs.issuanceDate,\n inputs.currentDate,\n inputs.templateRoot,\n inputs.linkIdCredentialProof,\n passportSignatureProof.passportCredentialMsg.linkId,\n nullifier,\n inputs.issuerDidHash\n );\n _setNullifier(nullifier, inputs.revocationNonce);\n _addHashAndTransit(inputs.hashIndex, inputs.hashValue);\n }\n\n function _updateCredentialVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) internal {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n if (circuitIds.length != verifierAddresses.length) {\n revert LengthMismatch(circuitIds.length, verifierAddresses.length);\n }\n for (uint256 i = 0; i < circuitIds.length; i++) {\n $._credentialVerifiers[circuitIds[i]] = verifierAddresses[i];\n\n emit CredentialCircuitVerifierUpdated(circuitIds[i], verifierAddresses[i]);\n }\n }\n\n function _extractProofInputs(\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof\n ) internal pure returns (ProofInputs memory) {\n return\n ProofInputs({\n hashIndex: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_HASH_INDEX_INDEX\n ],\n hashValue: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_HASH_VALUE_INDEX\n ],\n issuanceDate: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_ISSUANCE_DATE_INDEX\n ],\n currentDate: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_CURRENT_DATE_INDEX\n ],\n templateRoot: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_TEMPLATE_ROOT_INDEX\n ],\n linkIdCredentialProof: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_LINK_ID_INDEX\n ],\n revocationNonce: uint64(\n credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_REVOCATION_NONCE_INDEX\n ]\n ),\n issuerDidHash: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_ISSUER_DID_HASH_INDEX\n ]\n });\n }\n}\n"
+ },
+ "solidity-bytes-utils/contracts/BytesLib.sol": {
+ "content": "// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n"
+ }
+ },
+ "settings": {
+ "optimizer": {
+ "enabled": true,
+ "runs": 200
+ },
+ "evmVersion": "paris",
+ "outputSelection": {
+ "*": {
+ "*": [
+ "abi",
+ "evm.bytecode",
+ "evm.deployedBytecode",
+ "evm.methodIdentifiers",
+ "metadata",
+ "storageLayout"
+ ],
+ "": [
+ "ast"
+ ]
+ }
+ }
+ }
+ },
+ "output": {
+ "errors": [
+ {
+ "component": "general",
+ "errorCode": "5667",
+ "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:217:9:\n |\n217 | bytes memory passportSignatureProof\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 8437,
+ "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol",
+ "start": 8402
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:382:9:\n |\n382 | uint256 signalHash = proof.pubSignals[8];\n | ^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 14357,
+ "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol",
+ "start": 14339
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "5667",
+ "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:407:9:\n |\n407 | uint256 nullifier,\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 15114,
+ "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol",
+ "start": 15097
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "5667",
+ "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/PassportCredentialIssuer.sol:501:9:\n |\n501 | uint256 nullifier,\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 17676,
+ "file": "contracts/verifiers/PassportCredentialIssuer.sol",
+ "start": 17659
+ },
+ "type": "Warning"
+ }
+ ],
+ "sources": {
+ "@iden3/contracts/interfaces/ICircuitValidator.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/interfaces/ICircuitValidator.sol",
+ "exportedSymbols": {
+ "ICircuitValidator": [
+ 84
+ ],
+ "IState": [
+ 407
+ ]
+ },
+ "id": 85,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:0"
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/IState.sol",
+ "file": "./IState.sol",
+ "id": 3,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 85,
+ "sourceUnit": 408,
+ "src": "61:36:0",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 2,
+ "name": "IState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 407,
+ "src": "69:6:0",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ICircuitValidator",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 4,
+ "nodeType": "StructuredDocumentation",
+ "src": "99:70:0",
+ "text": " @dev ICircuitValidator. Interface for circuit verification."
+ },
+ "fullyImplemented": false,
+ "id": 84,
+ "linearizedBaseContracts": [
+ 84
+ ],
+ "name": "ICircuitValidator",
+ "nameLocation": "180:17:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "ICircuitValidator.KeyToInputIndex",
+ "documentation": {
+ "id": 5,
+ "nodeType": "StructuredDocumentation",
+ "src": "204:331:0",
+ "text": " @dev KeyToInputIndex. Information about public inputs of the circuit verification. Used in verify function.\n @param key Name of the public input\n @param inputIndex Index of the public input\n Note: Kept for backward compatibility. Now it's replaced by Signal struct for verifyV2 function."
+ },
+ "id": 10,
+ "members": [
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "580:3:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 10,
+ "src": "573:10:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "573:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9,
+ "mutability": "mutable",
+ "name": "inputIndex",
+ "nameLocation": "601:10:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 10,
+ "src": "593:18:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "593:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "KeyToInputIndex",
+ "nameLocation": "547:15:0",
+ "nodeType": "StructDefinition",
+ "scope": 84,
+ "src": "540:78:0",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "ICircuitValidator.Signal",
+ "documentation": {
+ "id": 11,
+ "nodeType": "StructuredDocumentation",
+ "src": "624:212:0",
+ "text": " @dev Signal. Information about public signals of the circuit verification. Used in verifyV2 function.\n @param name Name of the public signal\n @param value Value of the public signal"
+ },
+ "id": 16,
+ "members": [
+ {
+ "constant": false,
+ "id": 13,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "872:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 16,
+ "src": "865:11:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 12,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "865:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "894:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 16,
+ "src": "886:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "886:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Signal",
+ "nameLocation": "848:6:0",
+ "nodeType": "StructDefinition",
+ "scope": 84,
+ "src": "841:65:0",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 17,
+ "nodeType": "StructuredDocumentation",
+ "src": "912:51:0",
+ "text": " @dev Get version of the contract"
+ },
+ "functionSelector": "54fd4d50",
+ "id": 22,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "version",
+ "nameLocation": "977:7:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "984:2:0"
+ },
+ "returnParameters": {
+ "id": 21,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 20,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 22,
+ "src": "1010:13:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 19,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1010:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1009:15:0"
+ },
+ "scope": 84,
+ "src": "968:57:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 23,
+ "nodeType": "StructuredDocumentation",
+ "src": "1031:562:0",
+ "text": " @dev Verify with the supported circuit informed in the request query data the groth16 proof\n π=([πa]1,[πb]2,[πc]1) and that the proof was generated by the sender.\n @param inputs Public inputs of the circuit.\n @param a πa element of the groth16 proof.\n @param b πb element of the groth16 proof.\n @param c πc element of the groth16 proof.\n @param data Request query data of the credential to verify.\n @param sender Sender of the proof.\n @return Array of key to public input index as result."
+ },
+ "functionSelector": "f177a69e",
+ "id": 51,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verify",
+ "nameLocation": "1607:6:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 45,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 26,
+ "mutability": "mutable",
+ "name": "inputs",
+ "nameLocation": "1640:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1623:23:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 24,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1623:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 25,
+ "nodeType": "ArrayTypeName",
+ "src": "1623:9:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 30,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1674:1:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1656:19:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 27,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1656:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 29,
+ "length": {
+ "hexValue": "32",
+ "id": 28,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1664:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1656:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 36,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1706:1:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1685:22:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 31,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1685:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 33,
+ "length": {
+ "hexValue": "32",
+ "id": 32,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1693:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1685:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 35,
+ "length": {
+ "hexValue": "32",
+ "id": 34,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1696:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1685:13:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 40,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "1735:1:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1717:19:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 37,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1717:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 39,
+ "length": {
+ "hexValue": "32",
+ "id": 38,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1725:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1717:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 42,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "1761:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1746:19:0",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 41,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1746:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 44,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "1783:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1775:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 43,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1775:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1613:182:0"
+ },
+ "returnParameters": {
+ "id": 50,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 49,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 51,
+ "src": "1814:42:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_KeyToInputIndex_$10_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct ICircuitValidator.KeyToInputIndex[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 47,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 46,
+ "name": "ICircuitValidator.KeyToInputIndex",
+ "nameLocations": [
+ "1814:17:0",
+ "1832:15:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 10,
+ "src": "1814:33:0"
+ },
+ "referencedDeclaration": 10,
+ "src": "1814:33:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_KeyToInputIndex_$10_storage_ptr",
+ "typeString": "struct ICircuitValidator.KeyToInputIndex"
+ }
+ },
+ "id": 48,
+ "nodeType": "ArrayTypeName",
+ "src": "1814:35:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_KeyToInputIndex_$10_storage_$dyn_storage_ptr",
+ "typeString": "struct ICircuitValidator.KeyToInputIndex[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1813:44:0"
+ },
+ "scope": 84,
+ "src": "1598:260:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 52,
+ "nodeType": "StructuredDocumentation",
+ "src": "1864:474:0",
+ "text": " @dev Verify with the supported circuit informed in the request query data the groth16 proof\n packed as bytes and that the proof was generated by the sender.\n @param zkProof Proof packed as bytes to verify.\n @param data Request query data of the credential to verify.\n @param sender Sender of the proof.\n @param state State contract to get identities and gist states to check.\n @return Array of public signals as result."
+ },
+ "functionSelector": "d6614a6b",
+ "id": 68,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyV2",
+ "nameLocation": "2352:8:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 62,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 54,
+ "mutability": "mutable",
+ "name": "zkProof",
+ "nameLocation": "2385:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 68,
+ "src": "2370:22:0",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 53,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2370:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 56,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "2417:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 68,
+ "src": "2402:19:0",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 55,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2402:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 58,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "2439:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 68,
+ "src": "2431:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 57,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2431:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 61,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "2462:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 68,
+ "src": "2455:12:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ },
+ "typeName": {
+ "id": 60,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 59,
+ "name": "IState",
+ "nameLocations": [
+ "2455:6:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 407,
+ "src": "2455:6:0"
+ },
+ "referencedDeclaration": 407,
+ "src": "2455:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2360:113:0"
+ },
+ "returnParameters": {
+ "id": 67,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 66,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 68,
+ "src": "2492:33:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Signal_$16_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct ICircuitValidator.Signal[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 64,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 63,
+ "name": "ICircuitValidator.Signal",
+ "nameLocations": [
+ "2492:17:0",
+ "2510:6:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16,
+ "src": "2492:24:0"
+ },
+ "referencedDeclaration": 16,
+ "src": "2492:24:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Signal_$16_storage_ptr",
+ "typeString": "struct ICircuitValidator.Signal"
+ }
+ },
+ "id": 65,
+ "nodeType": "ArrayTypeName",
+ "src": "2492:26:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Signal_$16_storage_$dyn_storage_ptr",
+ "typeString": "struct ICircuitValidator.Signal[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2491:35:0"
+ },
+ "scope": 84,
+ "src": "2343:184:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 69,
+ "nodeType": "StructuredDocumentation",
+ "src": "2533:101:0",
+ "text": " @dev Get supported circuit ids.\n @return ids Array of circuit ids supported."
+ },
+ "functionSelector": "fb5af2a2",
+ "id": 75,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getSupportedCircuitIds",
+ "nameLocation": "2648:22:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 70,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2670:2:0"
+ },
+ "returnParameters": {
+ "id": 74,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 73,
+ "mutability": "mutable",
+ "name": "ids",
+ "nameLocation": "2712:3:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 75,
+ "src": "2696:19:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 71,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2696:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 72,
+ "nodeType": "ArrayTypeName",
+ "src": "2696:8:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2695:21:0"
+ },
+ "scope": 84,
+ "src": "2639:78:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 76,
+ "nodeType": "StructuredDocumentation",
+ "src": "2723:168:0",
+ "text": " @dev Get the index of the public input of the circuit by name.\n @param name Name of the public input.\n @return Index of the public input."
+ },
+ "functionSelector": "b16a394f",
+ "id": 83,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "inputIndexOf",
+ "nameLocation": "2905:12:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 79,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 78,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "2932:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 83,
+ "src": "2918:18:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 77,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2918:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2917:20:0"
+ },
+ "returnParameters": {
+ "id": 82,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 81,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 83,
+ "src": "2961:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 80,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2961:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2960:9:0"
+ },
+ "scope": 84,
+ "src": "2896:74:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 85,
+ "src": "170:2802:0",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:2937:0"
+ },
+ "id": 0
+ },
+ "@iden3/contracts/interfaces/IIdentifiable.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/interfaces/IIdentifiable.sol",
+ "exportedSymbols": {
+ "IIdentifiable": [
+ 94
+ ]
+ },
+ "id": 95,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 86,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:1"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IIdentifiable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 87,
+ "nodeType": "StructuredDocumentation",
+ "src": "61:67:1",
+ "text": " @dev IIdentifiable. Interface for identifiable entities."
+ },
+ "fullyImplemented": false,
+ "id": 94,
+ "linearizedBaseContracts": [
+ 94
+ ],
+ "name": "IIdentifiable",
+ "nameLocation": "139:13:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 88,
+ "nodeType": "StructuredDocumentation",
+ "src": "159:53:1",
+ "text": " @dev getId. Get id of the identity"
+ },
+ "functionSelector": "5d1ca631",
+ "id": 93,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getId",
+ "nameLocation": "226:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 89,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "231:2:1"
+ },
+ "returnParameters": {
+ "id": 92,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 91,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 93,
+ "src": "257:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 90,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "257:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "256:9:1"
+ },
+ "scope": 94,
+ "src": "217:49:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 95,
+ "src": "129:139:1",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:233:1"
+ },
+ "id": 1
+ },
+ "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol",
+ "exportedSymbols": {
+ "IOnchainCredentialStatusResolver": [
+ 158
+ ]
+ },
+ "id": 159,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 96,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:2"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IOnchainCredentialStatusResolver",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 158,
+ "linearizedBaseContracts": [
+ 158
+ ],
+ "name": "IOnchainCredentialStatusResolver",
+ "nameLocation": "71:32:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "IOnchainCredentialStatusResolver.Proof",
+ "documentation": {
+ "id": 97,
+ "nodeType": "StructuredDocumentation",
+ "src": "110:554:2",
+ "text": " @dev Struct of the node proof in the SMT.\n @param root SMT root.\n @param existence A flag, which shows if the leaf index exists in the SMT.\n @param siblings An array of SMT sibling node hashes.\n @param index An index of the leaf in the SMT.\n @param value A value of the leaf in the SMT.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n @param auxIndex An index of the auxiliary leaf in the SMT.\n @param auxValue A value of the auxiliary leaf in the SMT."
+ },
+ "id": 115,
+ "members": [
+ {
+ "constant": false,
+ "id": 99,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "700:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "692:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 98,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "692:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 101,
+ "mutability": "mutable",
+ "name": "existence",
+ "nameLocation": "719:9:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "714:14:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 100,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "714:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 104,
+ "mutability": "mutable",
+ "name": "siblings",
+ "nameLocation": "748:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "738:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 102,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "738:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 103,
+ "nodeType": "ArrayTypeName",
+ "src": "738:9:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 106,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "774:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "766:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 105,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "766:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 108,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "797:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "789:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 107,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "789:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 110,
+ "mutability": "mutable",
+ "name": "auxExistence",
+ "nameLocation": "817:12:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "812:17:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 109,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "812:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 112,
+ "mutability": "mutable",
+ "name": "auxIndex",
+ "nameLocation": "847:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "839:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 111,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "839:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 114,
+ "mutability": "mutable",
+ "name": "auxValue",
+ "nameLocation": "873:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 115,
+ "src": "865:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 113,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "865:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Proof",
+ "nameLocation": "676:5:2",
+ "nodeType": "StructDefinition",
+ "scope": 158,
+ "src": "669:219:2",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IOnchainCredentialStatusResolver.IdentityStateRoots",
+ "documentation": {
+ "id": 116,
+ "nodeType": "StructuredDocumentation",
+ "src": "894:280:2",
+ "text": " @dev Struct to represent Identity State and it's Roots\n @param state An identity state\n @param claimsTreeRoot A root of the claims tree\n @param revocationTreeRoot A root of the revocation tree\n @param rootOfRoots A root of the roots tree"
+ },
+ "id": 125,
+ "members": [
+ {
+ "constant": false,
+ "id": 118,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "1223:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 125,
+ "src": "1215:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 117,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1215:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 120,
+ "mutability": "mutable",
+ "name": "claimsTreeRoot",
+ "nameLocation": "1246:14:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 125,
+ "src": "1238:22:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1238:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 122,
+ "mutability": "mutable",
+ "name": "revocationTreeRoot",
+ "nameLocation": "1278:18:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 125,
+ "src": "1270:26:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 121,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1270:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 124,
+ "mutability": "mutable",
+ "name": "rootOfRoots",
+ "nameLocation": "1314:11:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 125,
+ "src": "1306:19:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 123,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1306:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "IdentityStateRoots",
+ "nameLocation": "1186:18:2",
+ "nodeType": "StructDefinition",
+ "scope": 158,
+ "src": "1179:153:2",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IOnchainCredentialStatusResolver.CredentialStatus",
+ "documentation": {
+ "id": 126,
+ "nodeType": "StructuredDocumentation",
+ "src": "1338:184:2",
+ "text": " @dev Credential Status Struct\n @param issuer Issuer's identity state and roots\n @param mtp A Merkle Tree Proof of credential revocation or non-revocation"
+ },
+ "id": 133,
+ "members": [
+ {
+ "constant": false,
+ "id": 129,
+ "mutability": "mutable",
+ "name": "issuer",
+ "nameLocation": "1580:6:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 133,
+ "src": "1561:25:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots"
+ },
+ "typeName": {
+ "id": 128,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 127,
+ "name": "IdentityStateRoots",
+ "nameLocations": [
+ "1561:18:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 125,
+ "src": "1561:18:2"
+ },
+ "referencedDeclaration": 125,
+ "src": "1561:18:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 132,
+ "mutability": "mutable",
+ "name": "mtp",
+ "nameLocation": "1602:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 133,
+ "src": "1596:9:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof"
+ },
+ "typeName": {
+ "id": 131,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 130,
+ "name": "Proof",
+ "nameLocations": [
+ "1596:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 115,
+ "src": "1596:5:2"
+ },
+ "referencedDeclaration": 115,
+ "src": "1596:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "CredentialStatus",
+ "nameLocation": "1534:16:2",
+ "nodeType": "StructDefinition",
+ "scope": 158,
+ "src": "1527:85:2",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 134,
+ "nodeType": "StructuredDocumentation",
+ "src": "1618:195:2",
+ "text": " @dev returns revocation status of a claim using given revocation nonce\n @param id Issuer's identifier\n @param nonce Revocation nonce\n @return CredentialStatus"
+ },
+ "functionSelector": "110c96a7",
+ "id": 144,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationStatus",
+ "nameLocation": "1827:19:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 139,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 136,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "1864:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 144,
+ "src": "1856:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 135,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1856:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 138,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "1883:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 144,
+ "src": "1876:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 137,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "1876:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1846:48:2"
+ },
+ "returnParameters": {
+ "id": 143,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 142,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 144,
+ "src": "1918:23:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ },
+ "typeName": {
+ "id": 141,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 140,
+ "name": "CredentialStatus",
+ "nameLocations": [
+ "1918:16:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 133,
+ "src": "1918:16:2"
+ },
+ "referencedDeclaration": 133,
+ "src": "1918:16:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1917:25:2"
+ },
+ "scope": 158,
+ "src": "1818:125:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 145,
+ "nodeType": "StructuredDocumentation",
+ "src": "1949:243:2",
+ "text": " @dev returns revocation status of a claim using given revocation nonce, id and state\n @param id Issuer's identifier\n @param state of the Issuer\n @param nonce Revocation nonce\n @return CredentialStatus"
+ },
+ "functionSelector": "aad72921",
+ "id": 157,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationStatusByIdAndState",
+ "nameLocation": "2206:31:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 152,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 147,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "2255:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 157,
+ "src": "2247:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 146,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2247:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 149,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "2275:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 157,
+ "src": "2267:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 148,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2267:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 151,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "2297:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 157,
+ "src": "2290:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 150,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "2290:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2237:71:2"
+ },
+ "returnParameters": {
+ "id": 156,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 155,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 157,
+ "src": "2332:23:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ },
+ "typeName": {
+ "id": 154,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 153,
+ "name": "CredentialStatus",
+ "nameLocations": [
+ "2332:16:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 133,
+ "src": "2332:16:2"
+ },
+ "referencedDeclaration": 133,
+ "src": "2332:16:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2331:25:2"
+ },
+ "scope": 158,
+ "src": "2197:160:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 159,
+ "src": "61:2298:2",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:2324:2"
+ },
+ "id": 2
+ },
+ "@iden3/contracts/interfaces/IState.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/interfaces/IState.sol",
+ "exportedSymbols": {
+ "IState": [
+ 407
+ ],
+ "MAX_SMT_DEPTH": [
+ 163
+ ]
+ },
+ "id": 408,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 160,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:3"
+ },
+ {
+ "constant": true,
+ "id": 163,
+ "mutability": "constant",
+ "name": "MAX_SMT_DEPTH",
+ "nameLocation": "243:13:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 408,
+ "src": "226:35:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 161,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "226:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3634",
+ "id": 162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "259:2:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "visibility": "internal"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IState",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 407,
+ "linearizedBaseContracts": [
+ 407
+ ],
+ "name": "IState",
+ "nameLocation": "274:6:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "IState.StateInfo",
+ "documentation": {
+ "id": 164,
+ "nodeType": "StructuredDocumentation",
+ "src": "287:566:3",
+ "text": " @dev Struct for public interfaces to represent a state information.\n @param id An identity.\n @param state A state.\n @param replacedByState A state, which replaced this state for the identity.\n @param createdAtTimestamp A time when the state was created.\n @param replacedAtTimestamp A time when the state was replaced by the next identity state.\n @param createdAtBlock A block number when the state was created.\n @param replacedAtBlock A block number when the state was replaced by the next identity state."
+ },
+ "id": 179,
+ "members": [
+ {
+ "constant": false,
+ "id": 166,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "893:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "885:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 165,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "885:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 168,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "913:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "905:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 167,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "905:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 170,
+ "mutability": "mutable",
+ "name": "replacedByState",
+ "nameLocation": "936:15:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "928:23:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 169,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "928:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 172,
+ "mutability": "mutable",
+ "name": "createdAtTimestamp",
+ "nameLocation": "969:18:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "961:26:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 171,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "961:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 174,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "1005:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "997:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 173,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "997:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 176,
+ "mutability": "mutable",
+ "name": "createdAtBlock",
+ "nameLocation": "1042:14:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "1034:22:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 175,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1034:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 178,
+ "mutability": "mutable",
+ "name": "replacedAtBlock",
+ "nameLocation": "1074:15:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 179,
+ "src": "1066:23:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 177,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1066:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "StateInfo",
+ "nameLocation": "865:9:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "858:238:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.GistRootInfo",
+ "documentation": {
+ "id": 180,
+ "nodeType": "StructuredDocumentation",
+ "src": "1102:562:3",
+ "text": " @dev Struct for public interfaces to represent GIST root information.\n @param root This GIST root.\n @param replacedByRoot A root, which replaced this root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain.\n @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain."
+ },
+ "id": 193,
+ "members": [
+ {
+ "constant": false,
+ "id": 182,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "1707:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1699:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 181,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1699:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 184,
+ "mutability": "mutable",
+ "name": "replacedByRoot",
+ "nameLocation": "1729:14:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1721:22:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 183,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1721:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 186,
+ "mutability": "mutable",
+ "name": "createdAtTimestamp",
+ "nameLocation": "1761:18:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1753:26:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 185,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1753:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 188,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "1797:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1789:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 187,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1789:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 190,
+ "mutability": "mutable",
+ "name": "createdAtBlock",
+ "nameLocation": "1834:14:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1826:22:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 189,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1826:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 192,
+ "mutability": "mutable",
+ "name": "replacedAtBlock",
+ "nameLocation": "1866:15:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 193,
+ "src": "1858:23:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 191,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1858:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "GistRootInfo",
+ "nameLocation": "1676:12:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "1669:219:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.GistProof",
+ "documentation": {
+ "id": 194,
+ "nodeType": "StructuredDocumentation",
+ "src": "1894:597:3",
+ "text": " @dev Struct for public interfaces to represent GIST proof information.\n @param root This GIST root.\n @param existence A flag, which shows if the leaf index exists in the GIST.\n @param siblings An array of GIST sibling node hashes.\n @param index An index of the leaf in the GIST.\n @param value A value of the leaf in the GIST.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the GIST.\n @param auxIndex An index of the auxiliary leaf in the GIST.\n @param auxValue An value of the auxiliary leaf in the GIST."
+ },
+ "id": 213,
+ "members": [
+ {
+ "constant": false,
+ "id": 196,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "2531:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2523:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 195,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2523:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 198,
+ "mutability": "mutable",
+ "name": "existence",
+ "nameLocation": "2550:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2545:14:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 197,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2545:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 202,
+ "mutability": "mutable",
+ "name": "siblings",
+ "nameLocation": "2581:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2569:20:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$64_storage_ptr",
+ "typeString": "uint256[64]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 199,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2569:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 201,
+ "length": {
+ "hexValue": "3634",
+ "id": 200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2577:2:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2569:11:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$64_storage_ptr",
+ "typeString": "uint256[64]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 204,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "2672:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2664:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 203,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2664:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 206,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2695:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2687:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 205,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2687:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 208,
+ "mutability": "mutable",
+ "name": "auxExistence",
+ "nameLocation": "2715:12:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2710:17:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 207,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2710:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 210,
+ "mutability": "mutable",
+ "name": "auxIndex",
+ "nameLocation": "2745:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2737:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 209,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2737:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 212,
+ "mutability": "mutable",
+ "name": "auxValue",
+ "nameLocation": "2771:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "2763:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 211,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2763:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "GistProof",
+ "nameLocation": "2503:9:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "2496:290:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.IdentityStateUpdate",
+ "documentation": {
+ "id": 214,
+ "nodeType": "StructuredDocumentation",
+ "src": "2791:164:3",
+ "text": " @dev Struct for signed identity states.\n @param idStateMsg Message of the identity state.\n @param signature Signature of the message."
+ },
+ "id": 220,
+ "members": [
+ {
+ "constant": false,
+ "id": 217,
+ "mutability": "mutable",
+ "name": "idStateMsg",
+ "nameLocation": "3018:10:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 220,
+ "src": "2997:31:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateMessage_$237_storage_ptr",
+ "typeString": "struct IState.IdentityStateMessage"
+ },
+ "typeName": {
+ "id": 216,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 215,
+ "name": "IdentityStateMessage",
+ "nameLocations": [
+ "2997:20:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 237,
+ "src": "2997:20:3"
+ },
+ "referencedDeclaration": 237,
+ "src": "2997:20:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateMessage_$237_storage_ptr",
+ "typeString": "struct IState.IdentityStateMessage"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 219,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "3044:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 220,
+ "src": "3038:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 218,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3038:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "IdentityStateUpdate",
+ "nameLocation": "2967:19:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "2960:100:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.GlobalStateUpdate",
+ "documentation": {
+ "id": 221,
+ "nodeType": "StructuredDocumentation",
+ "src": "3065:164:3",
+ "text": " @dev Struct for signed global states.\n @param globalStateMsg Message of the global state.\n @param signature Signature of the message."
+ },
+ "id": 227,
+ "members": [
+ {
+ "constant": false,
+ "id": 224,
+ "mutability": "mutable",
+ "name": "globalStateMsg",
+ "nameLocation": "3288:14:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 227,
+ "src": "3269:33:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_GlobalStateMessage_$247_storage_ptr",
+ "typeString": "struct IState.GlobalStateMessage"
+ },
+ "typeName": {
+ "id": 223,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 222,
+ "name": "GlobalStateMessage",
+ "nameLocations": [
+ "3269:18:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 247,
+ "src": "3269:18:3"
+ },
+ "referencedDeclaration": 247,
+ "src": "3269:18:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_GlobalStateMessage_$247_storage_ptr",
+ "typeString": "struct IState.GlobalStateMessage"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 226,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "3318:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 227,
+ "src": "3312:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 225,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3312:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "GlobalStateUpdate",
+ "nameLocation": "3241:17:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "3234:100:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.IdentityStateMessage",
+ "documentation": {
+ "id": 228,
+ "nodeType": "StructuredDocumentation",
+ "src": "3339:297:3",
+ "text": " @dev Struct for identity state message.\n @param timestamp Timestamp when the message was signed.\n @param id Id of the identity.\n @param state State of the identity.\n @param replacedAtTimestamp Timestamp when the state was replaced by next identity state."
+ },
+ "id": 237,
+ "members": [
+ {
+ "constant": false,
+ "id": 230,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "3687:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3679:17:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 229,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3679:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 232,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "3714:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3706:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 231,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3706:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 234,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "3734:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3726:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 233,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3726:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 236,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "3757:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3749:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 235,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3749:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "IdentityStateMessage",
+ "nameLocation": "3648:20:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "3641:142:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.GlobalStateMessage",
+ "documentation": {
+ "id": 238,
+ "nodeType": "StructuredDocumentation",
+ "src": "3789:308:3",
+ "text": " @dev Struct for global state message.\n @param timestamp Timestamp when the message was signed.\n @param idType Id type of the chain.\n @param root Root of the global state.\n @param replacedAtTimestamp Timestamp when the global state was replaced by next global state."
+ },
+ "id": 247,
+ "members": [
+ {
+ "constant": false,
+ "id": 240,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "4146:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 247,
+ "src": "4138:17:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 239,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4138:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 242,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "4172:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 247,
+ "src": "4165:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 241,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "4165:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 244,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "4196:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 247,
+ "src": "4188:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 243,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4188:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 246,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "4218:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 247,
+ "src": "4210:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 245,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4210:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "GlobalStateMessage",
+ "nameLocation": "4109:18:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "4102:142:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.CrossChainProof",
+ "documentation": {
+ "id": 248,
+ "nodeType": "StructuredDocumentation",
+ "src": "4249:186:3",
+ "text": " @dev Struct for cross chain proof.\n @param proofType Proof type for the proof provided (\"stateProof\", \"globalStateProof\").\n @param proof Cross chain proof."
+ },
+ "id": 253,
+ "members": [
+ {
+ "constant": false,
+ "id": 250,
+ "mutability": "mutable",
+ "name": "proofType",
+ "nameLocation": "4480:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 253,
+ "src": "4473:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 249,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4473:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 252,
+ "mutability": "mutable",
+ "name": "proof",
+ "nameLocation": "4505:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 253,
+ "src": "4499:11:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 251,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4499:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "CrossChainProof",
+ "nameLocation": "4447:15:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "4440:77:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.GlobalStateProcessResult",
+ "documentation": {
+ "id": 254,
+ "nodeType": "StructuredDocumentation",
+ "src": "4523:252:3",
+ "text": " @dev Struct for global state process result.\n @param idType Id type of the chain.\n @param root Root of the global state.\n @param replacedAtTimestamp Timestamp when the global state was replaced by next global state."
+ },
+ "id": 261,
+ "members": [
+ {
+ "constant": false,
+ "id": 256,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "4829:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "4822:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 255,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "4822:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 258,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "4853:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "4845:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 257,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4845:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 260,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "4875:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "4867:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 259,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4867:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "GlobalStateProcessResult",
+ "nameLocation": "4787:24:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "4780:121:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IState.IdentityStateProcessResult",
+ "documentation": {
+ "id": 262,
+ "nodeType": "StructuredDocumentation",
+ "src": "4906:250:3",
+ "text": " @dev Struct for identity state process result.\n @param id Id of the identity.\n @param state State of the identity.\n @param replacedAtTimestamp Timestamp when the identity state was replaced by next identity state."
+ },
+ "id": 269,
+ "members": [
+ {
+ "constant": false,
+ "id": 264,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "5213:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 269,
+ "src": "5205:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 263,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5205:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 266,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "5233:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 269,
+ "src": "5225:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 265,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5225:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 268,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "5256:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 269,
+ "src": "5248:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 267,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5248:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "IdentityStateProcessResult",
+ "nameLocation": "5168:26:3",
+ "nodeType": "StructDefinition",
+ "scope": 407,
+ "src": "5161:121:3",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 270,
+ "nodeType": "StructuredDocumentation",
+ "src": "5288:132:3",
+ "text": " @dev Retrieve last state information of specific id.\n @param id An identity.\n @return The state info."
+ },
+ "functionSelector": "b4bdea55",
+ "id": 278,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getStateInfoById",
+ "nameLocation": "5434:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 273,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 272,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "5459:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "5451:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 271,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5451:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5450:12:3"
+ },
+ "returnParameters": {
+ "id": 277,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 276,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "5486:16:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$179_memory_ptr",
+ "typeString": "struct IState.StateInfo"
+ },
+ "typeName": {
+ "id": 275,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 274,
+ "name": "StateInfo",
+ "nameLocations": [
+ "5486:9:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 179,
+ "src": "5486:9:3"
+ },
+ "referencedDeclaration": 179,
+ "src": "5486:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$179_storage_ptr",
+ "typeString": "struct IState.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5485:18:3"
+ },
+ "scope": 407,
+ "src": "5425:79:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 279,
+ "nodeType": "StructuredDocumentation",
+ "src": "5510:157:3",
+ "text": " @dev Retrieve state information by id and state.\n @param id An identity.\n @param state A state.\n @return The state info."
+ },
+ "functionSelector": "53c87312",
+ "id": 289,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getStateInfoByIdAndState",
+ "nameLocation": "5681:24:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 284,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 281,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "5723:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 289,
+ "src": "5715:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 280,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5715:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 283,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "5743:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 289,
+ "src": "5735:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5735:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5705:49:3"
+ },
+ "returnParameters": {
+ "id": 288,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 287,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 289,
+ "src": "5778:16:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$179_memory_ptr",
+ "typeString": "struct IState.StateInfo"
+ },
+ "typeName": {
+ "id": 286,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 285,
+ "name": "StateInfo",
+ "nameLocations": [
+ "5778:9:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 179,
+ "src": "5778:9:3"
+ },
+ "referencedDeclaration": 179,
+ "src": "5778:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$179_storage_ptr",
+ "typeString": "struct IState.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5777:18:3"
+ },
+ "scope": 407,
+ "src": "5672:124:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 290,
+ "nodeType": "StructuredDocumentation",
+ "src": "5802:133:3",
+ "text": " @dev Retrieve the specific GIST root information.\n @param root GIST root.\n @return The GIST root info."
+ },
+ "functionSelector": "7c1a66de",
+ "id": 298,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getGISTRootInfo",
+ "nameLocation": "5949:15:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 293,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 292,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "5973:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 298,
+ "src": "5965:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 291,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5965:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5964:14:3"
+ },
+ "returnParameters": {
+ "id": 297,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 296,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 298,
+ "src": "6002:19:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_GistRootInfo_$193_memory_ptr",
+ "typeString": "struct IState.GistRootInfo"
+ },
+ "typeName": {
+ "id": 295,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 294,
+ "name": "GistRootInfo",
+ "nameLocations": [
+ "6002:12:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 193,
+ "src": "6002:12:3"
+ },
+ "referencedDeclaration": 193,
+ "src": "6002:12:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_GistRootInfo_$193_storage_ptr",
+ "typeString": "struct IState.GistRootInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6001:21:3"
+ },
+ "scope": 407,
+ "src": "5940:83:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 299,
+ "nodeType": "StructuredDocumentation",
+ "src": "6029:131:3",
+ "text": " @dev Check if the id type supported.\n @param idType id type.\n @return True if the id type supported."
+ },
+ "functionSelector": "932e87a1",
+ "id": 306,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isIdTypeSupported",
+ "nameLocation": "6174:17:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 302,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 301,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "6199:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 306,
+ "src": "6192:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 300,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "6192:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6191:15:3"
+ },
+ "returnParameters": {
+ "id": 305,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 304,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 306,
+ "src": "6230:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 303,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6230:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6229:6:3"
+ },
+ "scope": 407,
+ "src": "6165:71:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 307,
+ "nodeType": "StructuredDocumentation",
+ "src": "6242:143:3",
+ "text": " @dev Get id if the id type supported for the id, otherwise revert.\n @param id An identity.\n @return The id type."
+ },
+ "functionSelector": "dd16059e",
+ "id": 314,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getIdTypeIfSupported",
+ "nameLocation": "6399:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "6428:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 314,
+ "src": "6420:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6420:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6419:12:3"
+ },
+ "returnParameters": {
+ "id": 313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 314,
+ "src": "6455:6:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 311,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "6455:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6454:8:3"
+ },
+ "scope": 407,
+ "src": "6390:73:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 315,
+ "nodeType": "StructuredDocumentation",
+ "src": "6469:70:3",
+ "text": " @dev Get defaultIdType\n @return defaultIdType"
+ },
+ "functionSelector": "133fe385",
+ "id": 320,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getDefaultIdType",
+ "nameLocation": "6553:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 316,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6569:2:3"
+ },
+ "returnParameters": {
+ "id": 319,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 318,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 320,
+ "src": "6595:6:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 317,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "6595:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6594:8:3"
+ },
+ "scope": 407,
+ "src": "6544:59:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 321,
+ "nodeType": "StructuredDocumentation",
+ "src": "6609:343:3",
+ "text": " @dev Performs state transition\n @param id Identifier of the identity\n @param oldState Previous state of the identity\n @param newState New state of the identity\n @param isOldStateGenesis Flag if previous identity state is genesis\n @param a Proof.A\n @param b Proof.B\n @param c Proof.C"
+ },
+ "functionSelector": "28f88a65",
+ "id": 346,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transitState",
+ "nameLocation": "6966:12:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 344,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 323,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "6996:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "6988:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 322,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6988:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 325,
+ "mutability": "mutable",
+ "name": "oldState",
+ "nameLocation": "7016:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7008:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 324,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7008:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 327,
+ "mutability": "mutable",
+ "name": "newState",
+ "nameLocation": "7042:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7034:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 326,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7034:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 329,
+ "mutability": "mutable",
+ "name": "isOldStateGenesis",
+ "nameLocation": "7065:17:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7060:22:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 328,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7060:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 333,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "7110:1:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7092:19:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 330,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7092:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 332,
+ "length": {
+ "hexValue": "32",
+ "id": 331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7100:1:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "7092:10:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 339,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "7142:1:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7121:22:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 334,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7121:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 336,
+ "length": {
+ "hexValue": "32",
+ "id": 335,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7129:1:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "7121:10:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 338,
+ "length": {
+ "hexValue": "32",
+ "id": 337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7132:1:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "7121:13:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 343,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "7171:1:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "7153:19:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 340,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7153:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 342,
+ "length": {
+ "hexValue": "32",
+ "id": 341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7161:1:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "7153:10:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6978:200:3"
+ },
+ "returnParameters": {
+ "id": 345,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7187:0:3"
+ },
+ "scope": 407,
+ "src": "6957:231:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 347,
+ "nodeType": "StructuredDocumentation",
+ "src": "7194:344:3",
+ "text": " @dev Performs state transition\n @param id Identity\n @param oldState Previous identity state\n @param newState New identity state\n @param isOldStateGenesis Is the previous state genesis?\n @param methodId State transition method id\n @param methodParams State transition method-specific params"
+ },
+ "functionSelector": "7d0dcba5",
+ "id": 362,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transitStateGeneric",
+ "nameLocation": "7552:19:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 360,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 349,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "7589:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7581:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 348,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7581:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 351,
+ "mutability": "mutable",
+ "name": "oldState",
+ "nameLocation": "7609:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7601:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 350,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7601:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 353,
+ "mutability": "mutable",
+ "name": "newState",
+ "nameLocation": "7635:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7627:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 352,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7627:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 355,
+ "mutability": "mutable",
+ "name": "isOldStateGenesis",
+ "nameLocation": "7658:17:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7653:22:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 354,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7653:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 357,
+ "mutability": "mutable",
+ "name": "methodId",
+ "nameLocation": "7693:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7685:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 356,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7685:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 359,
+ "mutability": "mutable",
+ "name": "methodParams",
+ "nameLocation": "7726:12:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 362,
+ "src": "7711:27:3",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 358,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7711:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7571:173:3"
+ },
+ "returnParameters": {
+ "id": 361,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7753:0:3"
+ },
+ "scope": 407,
+ "src": "7543:211:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 363,
+ "nodeType": "StructuredDocumentation",
+ "src": "7760:118:3",
+ "text": " @dev Check if identity exists.\n @param id Identity\n @return True if the identity exists"
+ },
+ "functionSelector": "0b8a295a",
+ "id": 370,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "idExists",
+ "nameLocation": "7892:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 366,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 365,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "7909:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 370,
+ "src": "7901:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 364,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7901:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7900:12:3"
+ },
+ "returnParameters": {
+ "id": 369,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 368,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 370,
+ "src": "7936:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 367,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7936:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7935:6:3"
+ },
+ "scope": 407,
+ "src": "7883:59:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 371,
+ "nodeType": "StructuredDocumentation",
+ "src": "7948:138:3",
+ "text": " @dev Check if state exists.\n @param id Identity\n @param state State\n @return True if the state exists"
+ },
+ "functionSelector": "233a4d23",
+ "id": 380,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "stateExists",
+ "nameLocation": "8100:11:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 376,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 373,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "8120:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 380,
+ "src": "8112:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 372,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8112:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 375,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "8132:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 380,
+ "src": "8124:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 374,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8124:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8111:27:3"
+ },
+ "returnParameters": {
+ "id": 379,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 378,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 380,
+ "src": "8162:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 377,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8162:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8161:6:3"
+ },
+ "scope": 407,
+ "src": "8091:77:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 381,
+ "nodeType": "StructuredDocumentation",
+ "src": "8174:247:3",
+ "text": " @dev Get timestamp when the identity state was replaced.\n @param id Identity\n @param state State of the identity\n @return replacedAtTimestamp Timestamp when the identity state was replaced by new identity state"
+ },
+ "functionSelector": "09478aa4",
+ "id": 390,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getStateReplacedAt",
+ "nameLocation": "8435:18:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 386,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 383,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "8471:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 390,
+ "src": "8463:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 382,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8463:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 385,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "8491:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 390,
+ "src": "8483:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 384,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8483:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8453:49:3"
+ },
+ "returnParameters": {
+ "id": 389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 388,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "8534:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 390,
+ "src": "8526:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 387,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8526:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8525:29:3"
+ },
+ "scope": 407,
+ "src": "8426:129:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 391,
+ "nodeType": "StructuredDocumentation",
+ "src": "8561:259:3",
+ "text": " @dev Get timestamp when the global state was replaced.\n @param idType Id type of the chain\n @param root Root of the global state\n @return replacedAtTimestamp Timestamp when the global state was replaced by new global state"
+ },
+ "functionSelector": "0a7a5469",
+ "id": 400,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getGistRootReplacedAt",
+ "nameLocation": "8834:21:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 396,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 393,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "8872:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 400,
+ "src": "8865:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 392,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "8865:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 395,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "8896:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 400,
+ "src": "8888:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 394,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8888:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8855:51:3"
+ },
+ "returnParameters": {
+ "id": 399,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 398,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "8938:19:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 400,
+ "src": "8930:27:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 397,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8930:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8929:29:3"
+ },
+ "scope": 407,
+ "src": "8825:134:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 401,
+ "nodeType": "StructuredDocumentation",
+ "src": "8965:159:3",
+ "text": " @dev Process the cross chain proofs with the identities and global states.\n @param proofs Proofs with the identities and global states"
+ },
+ "functionSelector": "e28d24b0",
+ "id": 406,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "processCrossChainProofs",
+ "nameLocation": "9138:23:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 404,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 403,
+ "mutability": "mutable",
+ "name": "proofs",
+ "nameLocation": "9177:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 406,
+ "src": "9162:21:3",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 402,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9162:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9161:23:3"
+ },
+ "returnParameters": {
+ "id": 405,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9193:0:3"
+ },
+ "scope": 407,
+ "src": "9129:65:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 408,
+ "src": "264:8932:3",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:9161:3"
+ },
+ "id": 3
+ },
+ "@iden3/contracts/interfaces/IZKPVerifier.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/interfaces/IZKPVerifier.sol",
+ "exportedSymbols": {
+ "ICircuitValidator": [
+ 84
+ ],
+ "IZKPVerifier": [
+ 550
+ ]
+ },
+ "id": 551,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 409,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "37:23:4"
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/ICircuitValidator.sol",
+ "file": "./ICircuitValidator.sol",
+ "id": 411,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 551,
+ "sourceUnit": 85,
+ "src": "62:58:4",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 410,
+ "name": "ICircuitValidator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 84,
+ "src": "70:17:4",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IZKPVerifier",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 412,
+ "nodeType": "StructuredDocumentation",
+ "src": "122:99:4",
+ "text": " @dev IZKPVerifier. Interface for verification of groth16 proofs for validators circuits."
+ },
+ "fullyImplemented": false,
+ "id": 550,
+ "linearizedBaseContracts": [
+ 550
+ ],
+ "name": "IZKPVerifier",
+ "nameLocation": "232:12:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "IZKPVerifier.ZKPRequest",
+ "documentation": {
+ "id": 413,
+ "nodeType": "StructuredDocumentation",
+ "src": "251:193:4",
+ "text": " @dev ZKPRequest. Structure for ZKP request.\n @param metadata Metadata of the request.\n @param validator Validator circuit.\n @param data Data of the request."
+ },
+ "id": 421,
+ "members": [
+ {
+ "constant": false,
+ "id": 415,
+ "mutability": "mutable",
+ "name": "metadata",
+ "nameLocation": "484:8:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 421,
+ "src": "477:15:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 414,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "477:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 418,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "520:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 421,
+ "src": "502:27:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_ICircuitValidator_$84",
+ "typeString": "contract ICircuitValidator"
+ },
+ "typeName": {
+ "id": 417,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 416,
+ "name": "ICircuitValidator",
+ "nameLocations": [
+ "502:17:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 84,
+ "src": "502:17:4"
+ },
+ "referencedDeclaration": 84,
+ "src": "502:17:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_ICircuitValidator_$84",
+ "typeString": "contract ICircuitValidator"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 420,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "545:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 421,
+ "src": "539:10:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 419,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "539:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "ZKPRequest",
+ "nameLocation": "456:10:4",
+ "nodeType": "StructDefinition",
+ "scope": 550,
+ "src": "449:107:4",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IZKPVerifier.ProofStatus",
+ "documentation": {
+ "id": 422,
+ "nodeType": "StructuredDocumentation",
+ "src": "561:289:4",
+ "text": " @dev ProofStatus. Structure for proof status.\n @param isVerified True if the proof is verified.\n @param validatorVersion Version of the validator.\n @param blockNumber Block number of the proof.\n @param blockTimestamp Block timestamp of the proof."
+ },
+ "id": 431,
+ "members": [
+ {
+ "constant": false,
+ "id": 424,
+ "mutability": "mutable",
+ "name": "isVerified",
+ "nameLocation": "889:10:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 431,
+ "src": "884:15:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 423,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "884:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 426,
+ "mutability": "mutable",
+ "name": "validatorVersion",
+ "nameLocation": "916:16:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 431,
+ "src": "909:23:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 425,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "909:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 428,
+ "mutability": "mutable",
+ "name": "blockNumber",
+ "nameLocation": "950:11:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 431,
+ "src": "942:19:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 427,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "942:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 430,
+ "mutability": "mutable",
+ "name": "blockTimestamp",
+ "nameLocation": "979:14:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 431,
+ "src": "971:22:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 429,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "971:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "ProofStatus",
+ "nameLocation": "862:11:4",
+ "nodeType": "StructDefinition",
+ "scope": 550,
+ "src": "855:145:4",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IZKPVerifier.ZKPResponse",
+ "documentation": {
+ "id": 432,
+ "nodeType": "StructuredDocumentation",
+ "src": "1006:206:4",
+ "text": " @dev ZKPResponse. Structure for ZKP response.\n @param requestId Request id of the ZKP request.\n @param zkProof ZKP proof to verify.\n @param data Metadata of the request."
+ },
+ "id": 439,
+ "members": [
+ {
+ "constant": false,
+ "id": 434,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "1253:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 439,
+ "src": "1246:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 433,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "1246:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 436,
+ "mutability": "mutable",
+ "name": "zkProof",
+ "nameLocation": "1278:7:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 439,
+ "src": "1272:13:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 435,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1272:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 438,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "1301:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 439,
+ "src": "1295:10:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 437,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1295:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "ZKPResponse",
+ "nameLocation": "1224:11:4",
+ "nodeType": "StructDefinition",
+ "scope": 550,
+ "src": "1217:95:4",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 440,
+ "nodeType": "StructuredDocumentation",
+ "src": "1318:361:4",
+ "text": " @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n @param requestId Request id of the ZKP request.\n @param inputs Public inputs of the circuit.\n @param a πa element of the groth16 proof.\n @param b πb element of the groth16 proof.\n @param c πc element of the groth16 proof."
+ },
+ "functionSelector": "b68967e2",
+ "id": 462,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "submitZKPResponse",
+ "nameLocation": "1693:17:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 460,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 442,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "1727:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 462,
+ "src": "1720:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 441,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "1720:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 445,
+ "mutability": "mutable",
+ "name": "inputs",
+ "nameLocation": "1763:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 462,
+ "src": "1746:23:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 443,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1746:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 444,
+ "nodeType": "ArrayTypeName",
+ "src": "1746:9:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 449,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1797:1:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 462,
+ "src": "1779:19:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 446,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1779:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 448,
+ "length": {
+ "hexValue": "32",
+ "id": 447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1787:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1779:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 455,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1829:1:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 462,
+ "src": "1808:22:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 450,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1808:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 452,
+ "length": {
+ "hexValue": "32",
+ "id": 451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1816:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1808:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 454,
+ "length": {
+ "hexValue": "32",
+ "id": 453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1819:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1808:13:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 459,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "1858:1:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 462,
+ "src": "1840:19:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 456,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1840:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 458,
+ "length": {
+ "hexValue": "32",
+ "id": 457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1848:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1840:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1710:155:4"
+ },
+ "returnParameters": {
+ "id": 461,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1874:0:4"
+ },
+ "scope": 550,
+ "src": "1684:191:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 463,
+ "nodeType": "StructuredDocumentation",
+ "src": "1881:296:4",
+ "text": " @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n @param responses The list of responses including ZKP request ID, ZK proof and metadata.\n @param crossChainProofs The list of cross chain proofs from universal resolver (oracle)."
+ },
+ "functionSelector": "ade09fcd",
+ "id": 472,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "submitZKPResponseV2",
+ "nameLocation": "2191:19:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 470,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 467,
+ "mutability": "mutable",
+ "name": "responses",
+ "nameLocation": "2241:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 472,
+ "src": "2220:30:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_ZKPResponse_$439_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct IZKPVerifier.ZKPResponse[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 465,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 464,
+ "name": "ZKPResponse",
+ "nameLocations": [
+ "2220:11:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 439,
+ "src": "2220:11:4"
+ },
+ "referencedDeclaration": 439,
+ "src": "2220:11:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPResponse_$439_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPResponse"
+ }
+ },
+ "id": 466,
+ "nodeType": "ArrayTypeName",
+ "src": "2220:13:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_ZKPResponse_$439_storage_$dyn_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPResponse[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 469,
+ "mutability": "mutable",
+ "name": "crossChainProofs",
+ "nameLocation": "2273:16:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 472,
+ "src": "2260:29:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 468,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2260:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2210:85:4"
+ },
+ "returnParameters": {
+ "id": 471,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2304:0:4"
+ },
+ "scope": 550,
+ "src": "2182:123:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 473,
+ "nodeType": "StructuredDocumentation",
+ "src": "2311:159:4",
+ "text": " @dev Set the ZKP request for the requestId.\n @param requestId Request id of the ZKP request.\n @param request ZKP request to set."
+ },
+ "functionSelector": "9f5223e0",
+ "id": 481,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setZKPRequest",
+ "nameLocation": "2484:13:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 479,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 475,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "2505:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 481,
+ "src": "2498:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 474,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "2498:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 478,
+ "mutability": "mutable",
+ "name": "request",
+ "nameLocation": "2536:7:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 481,
+ "src": "2516:27:4",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPRequest_$421_calldata_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest"
+ },
+ "typeName": {
+ "id": 477,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 476,
+ "name": "ZKPRequest",
+ "nameLocations": [
+ "2516:10:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 421,
+ "src": "2516:10:4"
+ },
+ "referencedDeclaration": 421,
+ "src": "2516:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2497:47:4"
+ },
+ "returnParameters": {
+ "id": 480,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2553:0:4"
+ },
+ "scope": 550,
+ "src": "2475:79:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 482,
+ "nodeType": "StructuredDocumentation",
+ "src": "2560:145:4",
+ "text": " @dev Get the ZKP request for the requestId.\n @param requestId Request id of the ZKP request.\n @return ZKP request."
+ },
+ "functionSelector": "c76d0845",
+ "id": 490,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getZKPRequest",
+ "nameLocation": "2719:13:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 485,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 484,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "2740:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 490,
+ "src": "2733:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 483,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "2733:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2732:18:4"
+ },
+ "returnParameters": {
+ "id": 489,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 488,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 490,
+ "src": "2774:17:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPRequest_$421_memory_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest"
+ },
+ "typeName": {
+ "id": 487,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 486,
+ "name": "ZKPRequest",
+ "nameLocations": [
+ "2774:10:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 421,
+ "src": "2774:10:4"
+ },
+ "referencedDeclaration": 421,
+ "src": "2774:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2773:19:4"
+ },
+ "scope": 550,
+ "src": "2710:83:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 491,
+ "nodeType": "StructuredDocumentation",
+ "src": "2799:84:4",
+ "text": " @dev Get the ZKP request count.\n @return ZKP request count."
+ },
+ "functionSelector": "6508e1b4",
+ "id": 496,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getZKPRequestsCount",
+ "nameLocation": "2897:19:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 492,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2916:2:4"
+ },
+ "returnParameters": {
+ "id": 495,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 494,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 496,
+ "src": "2942:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 493,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2942:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2941:9:4"
+ },
+ "scope": 550,
+ "src": "2888:63:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 497,
+ "nodeType": "StructuredDocumentation",
+ "src": "2957:154:4",
+ "text": " @dev Check if the requestId exists.\n @param requestId Request id of the ZKP request.\n @return True if the requestId exists."
+ },
+ "functionSelector": "ab7bcfb7",
+ "id": 504,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "requestIdExists",
+ "nameLocation": "3125:15:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 500,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 499,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "3148:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 504,
+ "src": "3141:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 498,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3141:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3140:18:4"
+ },
+ "returnParameters": {
+ "id": 503,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 502,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 504,
+ "src": "3182:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 501,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3182:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3181:6:4"
+ },
+ "scope": 550,
+ "src": "3116:72:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 505,
+ "nodeType": "StructuredDocumentation",
+ "src": "3194:194:4",
+ "text": " @dev Get the ZKP requests.\n @param startIndex Start index of the ZKP requests.\n @param length Length of the ZKP requests.\n @return Array of the ZKP requests."
+ },
+ "functionSelector": "5f9e60d7",
+ "id": 516,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getZKPRequests",
+ "nameLocation": "3402:14:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 510,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 507,
+ "mutability": "mutable",
+ "name": "startIndex",
+ "nameLocation": "3434:10:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 516,
+ "src": "3426:18:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 506,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3426:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 509,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "3462:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 516,
+ "src": "3454:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 508,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3454:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3416:58:4"
+ },
+ "returnParameters": {
+ "id": 515,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 514,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 516,
+ "src": "3498:19:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_ZKPRequest_$421_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 512,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 511,
+ "name": "ZKPRequest",
+ "nameLocations": [
+ "3498:10:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 421,
+ "src": "3498:10:4"
+ },
+ "referencedDeclaration": 421,
+ "src": "3498:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest"
+ }
+ },
+ "id": 513,
+ "nodeType": "ArrayTypeName",
+ "src": "3498:12:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_ZKPRequest_$421_storage_$dyn_storage_ptr",
+ "typeString": "struct IZKPVerifier.ZKPRequest[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3497:21:4"
+ },
+ "scope": 550,
+ "src": "3393:126:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 517,
+ "nodeType": "StructuredDocumentation",
+ "src": "3525:274:4",
+ "text": " @dev Get if proof is verified for the sender and ZKP request with requestId.\n @param sender Sender of the proof.\n @param requestId Request id of the ZKP Request to verify.\n @return True if proof is verified for the sender and request id."
+ },
+ "functionSelector": "49555fb1",
+ "id": 526,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isProofVerified",
+ "nameLocation": "3813:15:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 522,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 519,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3837:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 526,
+ "src": "3829:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 518,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3829:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 521,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "3852:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 526,
+ "src": "3845:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 520,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3845:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3828:34:4"
+ },
+ "returnParameters": {
+ "id": 525,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 524,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 526,
+ "src": "3886:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 523,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3886:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3885:6:4"
+ },
+ "scope": 550,
+ "src": "3804:88:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 527,
+ "nodeType": "StructuredDocumentation",
+ "src": "3898:211:4",
+ "text": " @dev Get the proof status for the sender and ZKP request with requestId.\n @param sender Sender of the proof.\n @param requestId Request id of the proof.\n @return Proof status."
+ },
+ "functionSelector": "8c1da2c9",
+ "id": 537,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getProofStatus",
+ "nameLocation": "4123:14:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 532,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 529,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "4155:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 537,
+ "src": "4147:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 528,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4147:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "4178:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 537,
+ "src": "4171:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 530,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "4171:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4137:56:4"
+ },
+ "returnParameters": {
+ "id": 536,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 535,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 537,
+ "src": "4217:18:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofStatus_$431_memory_ptr",
+ "typeString": "struct IZKPVerifier.ProofStatus"
+ },
+ "typeName": {
+ "id": 534,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 533,
+ "name": "ProofStatus",
+ "nameLocations": [
+ "4217:11:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 431,
+ "src": "4217:11:4"
+ },
+ "referencedDeclaration": 431,
+ "src": "4217:11:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofStatus_$431_storage_ptr",
+ "typeString": "struct IZKPVerifier.ProofStatus"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4216:20:4"
+ },
+ "scope": 550,
+ "src": "4114:123:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 538,
+ "nodeType": "StructuredDocumentation",
+ "src": "4243:252:4",
+ "text": " @dev Get the proof storage field for the user, requestId and key.\n @param user User address.\n @param requestId Request id of the proof.\n @param key Key of the proof storage field.\n @return Proof storage field."
+ },
+ "functionSelector": "d4858051",
+ "id": 549,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getProofStorageField",
+ "nameLocation": "4509:20:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 545,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 540,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "4547:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 549,
+ "src": "4539:12:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 539,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4539:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 542,
+ "mutability": "mutable",
+ "name": "requestId",
+ "nameLocation": "4568:9:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 549,
+ "src": "4561:16:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 541,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "4561:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 544,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4601:3:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 549,
+ "src": "4587:17:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 543,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4587:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4529:81:4"
+ },
+ "returnParameters": {
+ "id": 548,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 547,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 549,
+ "src": "4634:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 546,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4634:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4633:9:4"
+ },
+ "scope": 550,
+ "src": "4500:143:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 551,
+ "src": "222:4423:4",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "37:4609:4"
+ },
+ "id": 4
+ },
+ "@iden3/contracts/lib/ArrayUtils.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/ArrayUtils.sol",
+ "exportedSymbols": {
+ "ArrayUtils": [
+ 611
+ ]
+ },
+ "id": 612,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 552,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:5"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ArrayUtils",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 553,
+ "nodeType": "StructuredDocumentation",
+ "src": "61:42:5",
+ "text": "@title A common functions for arrays."
+ },
+ "fullyImplemented": true,
+ "id": 611,
+ "linearizedBaseContracts": [
+ 611
+ ],
+ "name": "ArrayUtils",
+ "nameLocation": "111:10:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 609,
+ "nodeType": "Block",
+ "src": "589:334:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 572,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 570,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 560,
+ "src": "607:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "616:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "607:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4c656e6774682073686f756c642062652067726561746572207468616e2030",
+ "id": 573,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "619:33:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a",
+ "typeString": "literal_string \"Length should be greater than 0\""
+ },
+ "value": "Length should be greater than 0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a",
+ "typeString": "literal_string \"Length should be greater than 0\""
+ }
+ ],
+ "id": 569,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "599:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "599:54:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 575,
+ "nodeType": "ExpressionStatement",
+ "src": "599:54:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 577,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 560,
+ "src": "671:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 578,
+ "name": "limit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 562,
+ "src": "681:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "671:15:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4c656e677468206c696d6974206578636565646564",
+ "id": 580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "688:23:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84",
+ "typeString": "literal_string \"Length limit exceeded\""
+ },
+ "value": "Length limit exceeded"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84",
+ "typeString": "literal_string \"Length limit exceeded\""
+ }
+ ],
+ "id": 576,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "663:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 581,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "663:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 582,
+ "nodeType": "ExpressionStatement",
+ "src": "663:49:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 586,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 584,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 558,
+ "src": "730:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 585,
+ "name": "arrLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 556,
+ "src": "738:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "730:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "537461727420696e646578206f7574206f6620626f756e6473",
+ "id": 587,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "749:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f",
+ "typeString": "literal_string \"Start index out of bounds\""
+ },
+ "value": "Start index out of bounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f",
+ "typeString": "literal_string \"Start index out of bounds\""
+ }
+ ],
+ "id": 583,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "722:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 588,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "722:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 589,
+ "nodeType": "ExpressionStatement",
+ "src": "722:55:5"
+ },
+ {
+ "assignments": [
+ 591
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 591,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "796:3:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 609,
+ "src": "788:11:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 590,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "788:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 595,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 592,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 558,
+ "src": "802:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 593,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 560,
+ "src": "810:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "802:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "788:28:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 596,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 591,
+ "src": "830:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 597,
+ "name": "arrLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 556,
+ "src": "836:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "830:15:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 604,
+ "nodeType": "IfStatement",
+ "src": "826:61:5",
+ "trueBody": {
+ "id": 603,
+ "nodeType": "Block",
+ "src": "847:40:5",
+ "statements": [
+ {
+ "expression": {
+ "id": 601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 599,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 591,
+ "src": "861:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 600,
+ "name": "arrLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 556,
+ "src": "867:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "861:15:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 602,
+ "nodeType": "ExpressionStatement",
+ "src": "861:15:5"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 605,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 558,
+ "src": "905:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 606,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 591,
+ "src": "912:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 607,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "904:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "functionReturnParameters": 568,
+ "id": 608,
+ "nodeType": "Return",
+ "src": "897:19:5"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 554,
+ "nodeType": "StructuredDocumentation",
+ "src": "128:287:5",
+ "text": " @dev Calculates bounds for the slice of the array.\n @param arrLength An array length.\n @param start A start index.\n @param length A length of the slice.\n @param limit A limit for the length.\n @return The bounds for the slice of the array."
+ },
+ "id": 610,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "calculateBounds",
+ "nameLocation": "429:15:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 563,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 556,
+ "mutability": "mutable",
+ "name": "arrLength",
+ "nameLocation": "462:9:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "454:17:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 555,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "454:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 558,
+ "mutability": "mutable",
+ "name": "start",
+ "nameLocation": "489:5:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "481:13:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 557,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "481:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 560,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "512:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "504:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 559,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "504:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 562,
+ "mutability": "mutable",
+ "name": "limit",
+ "nameLocation": "536:5:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "528:13:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 561,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "528:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "444:103:5"
+ },
+ "returnParameters": {
+ "id": 568,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 565,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "571:7:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 564,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "571:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 567,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "580:7:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 566,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "580:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "570:18:5"
+ },
+ "scope": 611,
+ "src": "420:503:5",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 612,
+ "src": "103:822:5",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:890:5"
+ },
+ "id": 5
+ },
+ "@iden3/contracts/lib/GenesisUtils.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/GenesisUtils.sol",
+ "exportedSymbols": {
+ "GenesisUtils": [
+ 816
+ ],
+ "PrimitiveTypeUtils": [
+ 2915
+ ]
+ },
+ "id": 817,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 613,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:6"
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/PrimitiveTypeUtils.sol",
+ "file": "./PrimitiveTypeUtils.sol",
+ "id": 615,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 817,
+ "sourceUnit": 2916,
+ "src": "61:60:6",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 614,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "69:18:6",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "GenesisUtils",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 816,
+ "linearizedBaseContracts": [
+ 816
+ ],
+ "name": "GenesisUtils",
+ "nameLocation": "131:12:6",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 656,
+ "nodeType": "Block",
+ "src": "250:187:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 627,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 624,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 618,
+ "src": "268:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "274:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "268:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "3239",
+ "id": 626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "284:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_29_by_1",
+ "typeString": "int_const 29"
+ },
+ "value": "29"
+ },
+ "src": "268:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "436865636b73756d207265717569726573203239206c656e677468206172726179",
+ "id": 628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "288:35:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5",
+ "typeString": "literal_string \"Checksum requires 29 length array\""
+ },
+ "value": "Checksum requires 29 length array"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5",
+ "typeString": "literal_string \"Checksum requires 29 length array\""
+ }
+ ],
+ "id": 623,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "260:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 629,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "260:64:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 630,
+ "nodeType": "ExpressionStatement",
+ "src": "260:64:6"
+ },
+ {
+ "body": {
+ "id": 654,
+ "nodeType": "Block",
+ "src": "378:53:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 652,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 642,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 621,
+ "src": "392:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 647,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 618,
+ "src": "410:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 649,
+ "indexExpression": {
+ "id": 648,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 632,
+ "src": "416:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "410:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 646,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "404:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 645,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "404:5:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "404:15:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ ],
+ "id": 644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "397:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint16_$",
+ "typeString": "type(uint16)"
+ },
+ "typeName": {
+ "id": 643,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "397:6:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 651,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "397:23:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "392:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "id": 653,
+ "nodeType": "ExpressionStatement",
+ "src": "392:28:6"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 635,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 632,
+ "src": "355:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 636,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 618,
+ "src": "359:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "365:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "359:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "355:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 655,
+ "initializationExpression": {
+ "assignments": [
+ 632
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 632,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "348:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 655,
+ "src": "340:9:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 631,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "340:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 634,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "352:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "340:13:6"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "373:3:6",
+ "subExpression": {
+ "id": 639,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 632,
+ "src": "375:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 641,
+ "nodeType": "ExpressionStatement",
+ "src": "373:3:6"
+ },
+ "nodeType": "ForStatement",
+ "src": "335:96:6"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 616,
+ "nodeType": "StructuredDocumentation",
+ "src": "150:29:6",
+ "text": " @dev sum"
+ },
+ "id": 657,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sum",
+ "nameLocation": "193:3:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 619,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 618,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "210:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 657,
+ "src": "197:18:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 617,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "197:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "196:20:6"
+ },
+ "returnParameters": {
+ "id": 622,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 621,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "247:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 657,
+ "src": "240:8:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 620,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "240:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "239:10:6"
+ },
+ "scope": 816,
+ "src": "184:253:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 684,
+ "nodeType": "Block",
+ "src": "568:149:6",
+ "statements": [
+ {
+ "assignments": [
+ 668
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 668,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "585:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 684,
+ "src": "578:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 667,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "578:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 672,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 670,
+ "name": "id",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 660,
+ "src": "604:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 669,
+ "name": "getIdType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 705,
+ "src": "594:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes2_$",
+ "typeString": "function (uint256) pure returns (bytes2)"
+ }
+ },
+ "id": 671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "594:13:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "578:29:6"
+ },
+ {
+ "assignments": [
+ 674
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 674,
+ "mutability": "mutable",
+ "name": "computedId",
+ "nameLocation": "625:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 684,
+ "src": "617:18:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 673,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "617:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 679,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 676,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 668,
+ "src": "661:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ {
+ "id": 677,
+ "name": "idState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 662,
+ "src": "669:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 675,
+ "name": "calcIdFromGenesisState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 789,
+ "src": "638:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bytes2,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "638:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "617:60:6"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 680,
+ "name": "id",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 660,
+ "src": "694:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 681,
+ "name": "computedId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 674,
+ "src": "700:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "694:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 666,
+ "id": 683,
+ "nodeType": "Return",
+ "src": "687:23:6"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 658,
+ "nodeType": "StructuredDocumentation",
+ "src": "443:38:6",
+ "text": " @dev isGenesisState"
+ },
+ "id": 685,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isGenesisState",
+ "nameLocation": "495:14:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 663,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 660,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "518:2:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 685,
+ "src": "510:10:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 659,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "510:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 662,
+ "mutability": "mutable",
+ "name": "idState",
+ "nameLocation": "530:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 685,
+ "src": "522:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 661,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "522:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "509:29:6"
+ },
+ "returnParameters": {
+ "id": 666,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 665,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 685,
+ "src": "562:4:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 664,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "562:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "561:6:6"
+ },
+ "scope": 816,
+ "src": "486:231:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 704,
+ "nodeType": "Block",
+ "src": "823:104:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 699,
+ "name": "id",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 688,
+ "src": "915:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 697,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "881:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 698,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "900:14:6",
+ "memberName": "reverseUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2632,
+ "src": "881:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 700,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "881:37:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 695,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "847:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "866:14:6",
+ "memberName": "uint256ToBytes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2535,
+ "src": "847:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ }
+ },
+ "id": 701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "847:72:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 694,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "840:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes2_$",
+ "typeString": "type(bytes2)"
+ },
+ "typeName": {
+ "id": 693,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "840:6:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 702,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "840:80:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "functionReturnParameters": 692,
+ "id": 703,
+ "nodeType": "Return",
+ "src": "833:87:6"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 686,
+ "nodeType": "StructuredDocumentation",
+ "src": "723:33:6",
+ "text": " @dev getIdType"
+ },
+ "id": 705,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getIdType",
+ "nameLocation": "770:9:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 689,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 688,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "788:2:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 705,
+ "src": "780:10:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 687,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "780:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "779:12:6"
+ },
+ "returnParameters": {
+ "id": 692,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 691,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 705,
+ "src": "815:6:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 690,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "815:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "814:8:6"
+ },
+ "scope": 816,
+ "src": "761:166:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 788,
+ "nodeType": "Block",
+ "src": "1102:755:6",
+ "statements": [
+ {
+ "assignments": [
+ 716
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 716,
+ "mutability": "mutable",
+ "name": "userStateB1",
+ "nameLocation": "1125:11:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1112:24:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 715,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1112:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 724,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 721,
+ "name": "idState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 710,
+ "src": "1220:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 719,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1186:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1205:14:6",
+ "memberName": "reverseUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2632,
+ "src": "1186:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1186:42:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 717,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1139:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1158:14:6",
+ "memberName": "uint256ToBytes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2535,
+ "src": "1139:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ }
+ },
+ "id": 723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1139:99:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1112:126:6"
+ },
+ {
+ "assignments": [
+ 726
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 726,
+ "mutability": "mutable",
+ "name": "cutState",
+ "nameLocation": "1262:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1249:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 725,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1249:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 736,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 729,
+ "name": "userStateB1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 716,
+ "src": "1298:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 733,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 730,
+ "name": "userStateB1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 716,
+ "src": "1311:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 731,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1323:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "1311:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3237",
+ "id": 732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1332:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_27_by_1",
+ "typeString": "int_const 27"
+ },
+ "value": "27"
+ },
+ "src": "1311:23:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "3237",
+ "id": 734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1336:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_27_by_1",
+ "typeString": "int_const 27"
+ },
+ "value": "27"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_27_by_1",
+ "typeString": "int_const 27"
+ }
+ ],
+ "expression": {
+ "id": 727,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1273:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 728,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1292:5:6",
+ "memberName": "slice",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2807,
+ "src": "1273:24:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
+ }
+ },
+ "id": 735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1273:66:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1249:90:6"
+ },
+ {
+ "assignments": [
+ 738
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 738,
+ "mutability": "mutable",
+ "name": "beforeChecksum",
+ "nameLocation": "1362:14:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1349:27:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 737,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1349:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 747,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 743,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 708,
+ "src": "1422:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ ],
+ "expression": {
+ "id": 741,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "1405:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 742,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1409:12:6",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "1405:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 744,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1405:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 745,
+ "name": "cutState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 726,
+ "src": "1431:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 739,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1379:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1398:6:6",
+ "memberName": "concat",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2787,
+ "src": "1379:25:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)"
+ }
+ },
+ "id": 746,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1379:61:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1349:91:6"
+ },
+ {
+ "assignments": [
+ 749
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 749,
+ "mutability": "mutable",
+ "name": "checksum",
+ "nameLocation": "1458:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1451:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 748,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "1451:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 756,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 753,
+ "name": "beforeChecksum",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 738,
+ "src": "1506:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 752,
+ "name": "sum",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 657,
+ "src": "1502:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$",
+ "typeString": "function (bytes memory) pure returns (uint16)"
+ }
+ },
+ "id": 754,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1502:19:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ ],
+ "expression": {
+ "id": 750,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1469:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 751,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1488:13:6",
+ "memberName": "reverseUint16",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2657,
+ "src": "1469:32:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_uint16_$",
+ "typeString": "function (uint16) pure returns (uint16)"
+ }
+ },
+ "id": 755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1469:53:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1451:71:6"
+ },
+ {
+ "assignments": [
+ 758
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 758,
+ "mutability": "mutable",
+ "name": "checkSumBytes",
+ "nameLocation": "1545:13:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1532:26:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 757,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1532:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 763,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 761,
+ "name": "checksum",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 749,
+ "src": "1578:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ ],
+ "expression": {
+ "id": 759,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "1561:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 760,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1565:12:6",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "1561:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 762,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1561:26:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1532:55:6"
+ },
+ {
+ "assignments": [
+ 765
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 765,
+ "mutability": "mutable",
+ "name": "idBytes",
+ "nameLocation": "1611:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 788,
+ "src": "1598:20:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 764,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1598:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 771,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 768,
+ "name": "beforeChecksum",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 738,
+ "src": "1647:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 769,
+ "name": "checkSumBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 758,
+ "src": "1663:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 766,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1621:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1640:6:6",
+ "memberName": "concat",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2787,
+ "src": "1621:25:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)"
+ }
+ },
+ "id": 770,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1621:56:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1598:79:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 773,
+ "name": "idBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 765,
+ "src": "1695:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1703:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "1695:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "3331",
+ "id": 775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1713:2:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_31_by_1",
+ "typeString": "int_const 31"
+ },
+ "value": "31"
+ },
+ "src": "1695:20:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "69644279746573207265717569726573203331206c656e677468206172726179",
+ "id": 777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1717:34:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1",
+ "typeString": "literal_string \"idBytes requires 31 length array\""
+ },
+ "value": "idBytes requires 31 length array"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1",
+ "typeString": "literal_string \"idBytes requires 31 length array\""
+ }
+ ],
+ "id": 772,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "1687:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 778,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1687:65:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 779,
+ "nodeType": "ExpressionStatement",
+ "src": "1687:65:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 784,
+ "name": "idBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 765,
+ "src": "1841:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 782,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1804:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 783,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1823:17:6",
+ "memberName": "padRightToUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2760,
+ "src": "1804:36:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (bytes memory) pure returns (uint256)"
+ }
+ },
+ "id": 785,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1804:45:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 780,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "1770:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1789:14:6",
+ "memberName": "reverseUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2632,
+ "src": "1770:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1770:80:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 714,
+ "id": 787,
+ "nodeType": "Return",
+ "src": "1763:87:6"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 706,
+ "nodeType": "StructuredDocumentation",
+ "src": "933:46:6",
+ "text": " @dev calcIdFromGenesisState"
+ },
+ "id": 789,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "calcIdFromGenesisState",
+ "nameLocation": "993:22:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 711,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 708,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "1032:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 789,
+ "src": "1025:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 707,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "1025:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 710,
+ "mutability": "mutable",
+ "name": "idState",
+ "nameLocation": "1056:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 789,
+ "src": "1048:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 709,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1048:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1015:54:6"
+ },
+ "returnParameters": {
+ "id": 714,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 713,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 789,
+ "src": "1093:7:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 712,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1093:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1092:9:6"
+ },
+ "scope": 816,
+ "src": "984:873:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 814,
+ "nodeType": "Block",
+ "src": "2005:164:6",
+ "statements": [
+ {
+ "assignments": [
+ 800
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 800,
+ "mutability": "mutable",
+ "name": "addr",
+ "nameLocation": "2023:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 814,
+ "src": "2015:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 799,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2015:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 805,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 803,
+ "name": "caller",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 794,
+ "src": "2066:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 801,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "2030:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 802,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2049:16:6",
+ "memberName": "addressToUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2824,
+ "src": "2030:35:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) pure returns (uint256)"
+ }
+ },
+ "id": 804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2030:43:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2015:58:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 807,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 792,
+ "src": "2114:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 810,
+ "name": "addr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 800,
+ "src": "2156:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 808,
+ "name": "PrimitiveTypeUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2915,
+ "src": "2122:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$",
+ "typeString": "type(library PrimitiveTypeUtils)"
+ }
+ },
+ "id": 809,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2141:14:6",
+ "memberName": "reverseUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2632,
+ "src": "2122:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2122:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 806,
+ "name": "calcIdFromGenesisState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 789,
+ "src": "2091:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bytes2,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 812,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2091:71:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 798,
+ "id": 813,
+ "nodeType": "Return",
+ "src": "2084:78:6"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 790,
+ "nodeType": "StructuredDocumentation",
+ "src": "1863:44:6",
+ "text": " @dev calcIdFromEthAddress"
+ },
+ "id": 815,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "calcIdFromEthAddress",
+ "nameLocation": "1921:20:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 795,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 792,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "1949:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 815,
+ "src": "1942:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 791,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "1942:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 794,
+ "mutability": "mutable",
+ "name": "caller",
+ "nameLocation": "1965:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 815,
+ "src": "1957:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 793,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1957:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1941:31:6"
+ },
+ "returnParameters": {
+ "id": 798,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 797,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 815,
+ "src": "1996:7:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 796,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1996:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1995:9:6"
+ },
+ "scope": 816,
+ "src": "1912:257:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 817,
+ "src": "123:2048:6",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:2136:6"
+ },
+ "id": 6
+ },
+ "@iden3/contracts/lib/IdentityBase.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/IdentityBase.sol",
+ "exportedSymbols": {
+ "ERC165": [
+ 8727
+ ],
+ "IIdentifiable": [
+ 94
+ ],
+ "IOnchainCredentialStatusResolver": [
+ 158
+ ],
+ "IdentityBase": [
+ 1327
+ ],
+ "IdentityLib": [
+ 2217
+ ],
+ "SmtLib": [
+ 4449
+ ]
+ },
+ "id": 1328,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 818,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:7"
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/IIdentifiable.sol",
+ "file": "../interfaces/IIdentifiable.sol",
+ "id": 820,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1328,
+ "sourceUnit": 95,
+ "src": "61:62:7",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 819,
+ "name": "IIdentifiable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 94,
+ "src": "69:13:7",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol",
+ "file": "../interfaces/IOnchainCredentialStatusResolver.sol",
+ "id": 822,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1328,
+ "sourceUnit": 159,
+ "src": "124:100:7",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 821,
+ "name": "IOnchainCredentialStatusResolver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 158,
+ "src": "132:32:7",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/IdentityLib.sol",
+ "file": "../lib/IdentityLib.sol",
+ "id": 824,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1328,
+ "sourceUnit": 2218,
+ "src": "225:51:7",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 823,
+ "name": "IdentityLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2217,
+ "src": "233:11:7",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/SmtLib.sol",
+ "file": "../lib/SmtLib.sol",
+ "id": 826,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1328,
+ "sourceUnit": 4637,
+ "src": "277:41:7",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 825,
+ "name": "SmtLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4449,
+ "src": "285:6:7",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
+ "file": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
+ "id": 828,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1328,
+ "sourceUnit": 8728,
+ "src": "319:78:7",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 827,
+ "name": "ERC165",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8727,
+ "src": "327:6:7",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 829,
+ "name": "IIdentifiable",
+ "nameLocations": [
+ "493:13:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 94,
+ "src": "493:13:7"
+ },
+ "id": 830,
+ "nodeType": "InheritanceSpecifier",
+ "src": "493:13:7"
+ },
+ {
+ "baseName": {
+ "id": 831,
+ "name": "IOnchainCredentialStatusResolver",
+ "nameLocations": [
+ "508:32:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 158,
+ "src": "508:32:7"
+ },
+ "id": 832,
+ "nodeType": "InheritanceSpecifier",
+ "src": "508:32:7"
+ },
+ {
+ "baseName": {
+ "id": 833,
+ "name": "ERC165",
+ "nameLocations": [
+ "542:6:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8727,
+ "src": "542:6:7"
+ },
+ "id": 834,
+ "nodeType": "InheritanceSpecifier",
+ "src": "542:6:7"
+ }
+ ],
+ "canonicalName": "IdentityBase",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 1327,
+ "linearizedBaseContracts": [
+ 1327,
+ 8727,
+ 8739,
+ 158,
+ 94
+ ],
+ "name": "IdentityBase",
+ "nameLocation": "477:12:7",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 838,
+ "libraryName": {
+ "id": 835,
+ "name": "IdentityLib",
+ "nameLocations": [
+ "561:11:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2217,
+ "src": "561:11:7"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "555:39:7",
+ "typeName": {
+ "id": 837,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 836,
+ "name": "IdentityLib.Data",
+ "nameLocations": [
+ "577:11:7",
+ "589:4:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "577:16:7"
+ },
+ "referencedDeclaration": 1371,
+ "src": "577:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ }
+ },
+ {
+ "canonicalName": "IdentityBase.IdentityBaseStorage",
+ "documentation": {
+ "id": 839,
+ "nodeType": "StructuredDocumentation",
+ "src": "600:48:7",
+ "text": "@dev Main storage structure for the contract"
+ },
+ "id": 843,
+ "members": [
+ {
+ "constant": false,
+ "id": 842,
+ "mutability": "mutable",
+ "name": "identity",
+ "nameLocation": "707:8:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 843,
+ "src": "690:25:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 841,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 840,
+ "name": "IdentityLib.Data",
+ "nameLocations": [
+ "690:11:7",
+ "702:4:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "690:16:7"
+ },
+ "referencedDeclaration": 1371,
+ "src": "690:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "IdentityBaseStorage",
+ "nameLocation": "660:19:7",
+ "nodeType": "StructDefinition",
+ "scope": 1327,
+ "src": "653:69:7",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 846,
+ "mutability": "constant",
+ "name": "IdentityBaseStorageLocation",
+ "nameLocation": "875:27:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1327,
+ "src": "850:129:7",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 844,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "850:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307833303138613331306333366334663832323866303962663362313832323638356366303937316461613832363561353863613830376334613464616261343030",
+ "id": 845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "913:66:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21754546498145594665686036366567490177206693549650858221762873689363909944320_by_1",
+ "typeString": "int_const 2175...(69 digits omitted)...4320"
+ },
+ "value": "0x3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba400"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 854,
+ "nodeType": "Block",
+ "src": "1160:86:7",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1179:61:7",
+ "nodeType": "YulBlock",
+ "src": "1179:61:7",
+ "statements": [
+ {
+ "nativeSrc": "1193:37:7",
+ "nodeType": "YulAssignment",
+ "src": "1193:37:7",
+ "value": {
+ "name": "IdentityBaseStorageLocation",
+ "nativeSrc": "1203:27:7",
+ "nodeType": "YulIdentifier",
+ "src": "1203:27:7"
+ },
+ "variableNames": [
+ {
+ "name": "$.slot",
+ "nativeSrc": "1193:6:7",
+ "nodeType": "YulIdentifier",
+ "src": "1193:6:7"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 851,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "1193:6:7",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 846,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1203:27:7",
+ "valueSize": 1
+ }
+ ],
+ "id": 853,
+ "nodeType": "InlineAssembly",
+ "src": "1170:70:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 847,
+ "nodeType": "StructuredDocumentation",
+ "src": "986:80:7",
+ "text": "@dev Get the main storage using assembly to ensure specific storage location"
+ },
+ "id": 855,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getIdentityBaseStorage",
+ "nameLocation": "1080:23:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 848,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1103:2:7"
+ },
+ "returnParameters": {
+ "id": 852,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 851,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "1157:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 855,
+ "src": "1129:29:7",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage"
+ },
+ "typeName": {
+ "id": 850,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 849,
+ "name": "IdentityBaseStorage",
+ "nameLocations": [
+ "1129:19:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 843,
+ "src": "1129:19:7"
+ },
+ "referencedDeclaration": 843,
+ "src": "1129:19:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1128:31:7"
+ },
+ "scope": 1327,
+ "src": "1071:175:7",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 863,
+ "nodeType": "Block",
+ "src": "1408:26:7",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "3430",
+ "id": 861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1425:2:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ "value": "40"
+ },
+ "functionReturnParameters": 860,
+ "id": 862,
+ "nodeType": "Return",
+ "src": "1418:9:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 856,
+ "nodeType": "StructuredDocumentation",
+ "src": "1252:90:7",
+ "text": " @dev Get configured Identity SMT depth.\n @return depth of the SMT"
+ },
+ "functionSelector": "3f0c6648",
+ "id": 864,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getSmtDepth",
+ "nameLocation": "1356:11:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 857,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1367:2:7"
+ },
+ "returnParameters": {
+ "id": 860,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 859,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 864,
+ "src": "1399:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 858,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1399:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1398:9:7"
+ },
+ "scope": 1327,
+ "src": "1347:87:7",
+ "stateMutability": "pure",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 886,
+ "nodeType": "Block",
+ "src": "1649:178:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 876,
+ "name": "_stateContractAddr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 867,
+ "src": "1718:18:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 879,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "1758:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IdentityBase_$1327",
+ "typeString": "contract IdentityBase"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_IdentityBase_$1327",
+ "typeString": "contract IdentityBase"
+ }
+ ],
+ "id": 878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1750:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 877,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1750:7:7",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1750:13:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 881,
+ "name": "getSmtDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 864,
+ "src": "1777:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
+ "typeString": "function () pure returns (uint256)"
+ }
+ },
+ "id": 882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1777:13:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 883,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 869,
+ "src": "1804:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 872,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "1659:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1659:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 874,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1685:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "1659:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 875,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1694:10:7",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1486,
+ "src": "1659:45:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_address_$_t_address_$_t_uint256_$_t_bytes2_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,address,address,uint256,bytes2)"
+ }
+ },
+ "id": 884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1659:161:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 885,
+ "nodeType": "ExpressionStatement",
+ "src": "1659:161:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 865,
+ "nodeType": "StructuredDocumentation",
+ "src": "1440:126:7",
+ "text": " @dev Initialization of IdentityLib library\n @param _stateContractAddr - address of the State contract"
+ },
+ "functionSelector": "406e8b4c",
+ "id": 887,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "initialize",
+ "nameLocation": "1580:10:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 870,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 867,
+ "mutability": "mutable",
+ "name": "_stateContractAddr",
+ "nameLocation": "1599:18:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 887,
+ "src": "1591:26:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 866,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1591:7:7",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 869,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "1626:6:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 887,
+ "src": "1619:13:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 868,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "1619:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1590:43:7"
+ },
+ "returnParameters": {
+ "id": 871,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1649:0:7"
+ },
+ "scope": 1327,
+ "src": "1571:256:7",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 903,
+ "nodeType": "Block",
+ "src": "2173:88:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 900,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 890,
+ "src": "2239:14:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 896,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "2190:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2190:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 898,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2216:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "2190:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 899,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2225:13:7",
+ "memberName": "getClaimProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1831,
+ "src": "2190:48:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2190:64:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 895,
+ "id": 902,
+ "nodeType": "Return",
+ "src": "2183:71:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 888,
+ "nodeType": "StructuredDocumentation",
+ "src": "1833:224:7",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "b57a40cb",
+ "id": 904,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProof",
+ "nameLocation": "2071:13:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 891,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 890,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "2102:14:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 904,
+ "src": "2094:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 889,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2094:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2084:38:7"
+ },
+ "returnParameters": {
+ "id": 895,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 894,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 904,
+ "src": "2152:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 893,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 892,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "2152:6:7",
+ "2159:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "2152:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "2152:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2151:21:7"
+ },
+ "scope": 1327,
+ "src": "2062:199:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 923,
+ "nodeType": "Block",
+ "src": "2682:101:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 920,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 907,
+ "src": "2761:14:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 916,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "2699:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2699:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 918,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2725:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "2699:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 919,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2734:26:7",
+ "memberName": "getClaimProofWithStateInfo",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1871,
+ "src": "2699:61:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "id": 921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2699:77:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 915,
+ "id": 922,
+ "nodeType": "Return",
+ "src": "2692:84:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 905,
+ "nodeType": "StructuredDocumentation",
+ "src": "2267:256:7",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info."
+ },
+ "functionSelector": "b37feda4",
+ "id": 924,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProofWithStateInfo",
+ "nameLocation": "2537:26:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 908,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 907,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "2581:14:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 924,
+ "src": "2573:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 906,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2573:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2563:38:7"
+ },
+ "returnParameters": {
+ "id": 915,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 911,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 924,
+ "src": "2631:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 910,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 909,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "2631:6:7",
+ "2638:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "2631:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "2631:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 914,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 924,
+ "src": "2652:28:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 913,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 912,
+ "name": "IdentityLib.StateInfo",
+ "nameLocations": [
+ "2652:11:7",
+ "2664:9:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "2652:21:7"
+ },
+ "referencedDeclaration": 1400,
+ "src": "2652:21:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2630:51:7"
+ },
+ "scope": 1327,
+ "src": "2528:255:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 943,
+ "nodeType": "Block",
+ "src": "3210:100:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 939,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 927,
+ "src": "3282:14:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 940,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 929,
+ "src": "3298:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 935,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "3227:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3227:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 937,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3253:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "3227:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 938,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3262:19:7",
+ "memberName": "getClaimProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1894,
+ "src": "3227:54:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 941,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3227:76:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 934,
+ "id": 942,
+ "nodeType": "Return",
+ "src": "3220:83:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 925,
+ "nodeType": "StructuredDocumentation",
+ "src": "2789:277:7",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n @param claimIndexHash - hash of Claim Index\n @param root - root of the tree\n @return The ClaimsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "310d0d5b",
+ "id": 944,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProofByRoot",
+ "nameLocation": "3080:19:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 930,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 927,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "3117:14:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 944,
+ "src": "3109:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 926,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3109:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 929,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "3149:4:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 944,
+ "src": "3141:12:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 928,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3141:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3099:60:7"
+ },
+ "returnParameters": {
+ "id": 934,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 933,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 944,
+ "src": "3189:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 932,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 931,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "3189:6:7",
+ "3196:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "3189:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "3189:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3188:21:7"
+ },
+ "scope": 1327,
+ "src": "3071:239:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 956,
+ "nodeType": "Block",
+ "src": "3486:78:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 950,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "3503:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 951,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3503:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 952,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3529:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "3503:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 953,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3538:17:7",
+ "memberName": "getClaimsTreeRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1910,
+ "src": "3503:52:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 954,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3503:54:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 949,
+ "id": 955,
+ "nodeType": "Return",
+ "src": "3496:61:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 945,
+ "nodeType": "StructuredDocumentation",
+ "src": "3316:98:7",
+ "text": " @dev Retrieve ClaimsTree latest root.\n @return The latest ClaimsTree root"
+ },
+ "functionSelector": "3df432fc",
+ "id": 957,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimsTreeRoot",
+ "nameLocation": "3428:17:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 946,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3445:2:7"
+ },
+ "returnParameters": {
+ "id": 949,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 948,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 957,
+ "src": "3477:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 947,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3477:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3476:9:7"
+ },
+ "scope": 1327,
+ "src": "3419:145:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 973,
+ "nodeType": "Block",
+ "src": "3928:94:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 970,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 960,
+ "src": "3999:15:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 966,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "3945:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3945:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 968,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3971:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "3945:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 969,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3980:18:7",
+ "memberName": "getRevocationProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1936,
+ "src": "3945:53:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3945:70:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 965,
+ "id": 972,
+ "nodeType": "Return",
+ "src": "3938:77:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 958,
+ "nodeType": "StructuredDocumentation",
+ "src": "3570:237:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce"
+ },
+ "functionSelector": "26485063",
+ "id": 974,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProof",
+ "nameLocation": "3821:18:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 961,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 960,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "3856:15:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 974,
+ "src": "3849:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 959,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3849:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3839:38:7"
+ },
+ "returnParameters": {
+ "id": 965,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 964,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 974,
+ "src": "3907:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 963,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 962,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "3907:6:7",
+ "3914:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "3907:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "3907:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3906:21:7"
+ },
+ "scope": 1327,
+ "src": "3812:210:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 993,
+ "nodeType": "Block",
+ "src": "4461:107:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 990,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 977,
+ "src": "4545:15:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 986,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "4478:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4478:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 988,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4504:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "4478:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 989,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4513:31:7",
+ "memberName": "getRevocationProofWithStateInfo",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1979,
+ "src": "4478:66:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "id": 991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4478:83:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 985,
+ "id": 992,
+ "nodeType": "Return",
+ "src": "4471:90:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 975,
+ "nodeType": "StructuredDocumentation",
+ "src": "4028:269:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info."
+ },
+ "functionSelector": "0033058d",
+ "id": 994,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProofWithStateInfo",
+ "nameLocation": "4311:31:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 978,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 977,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "4359:15:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 994,
+ "src": "4352:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 976,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "4352:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4342:38:7"
+ },
+ "returnParameters": {
+ "id": 985,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 981,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 994,
+ "src": "4410:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 980,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 979,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "4410:6:7",
+ "4417:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "4410:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "4410:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 984,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 994,
+ "src": "4431:28:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 983,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 982,
+ "name": "IdentityLib.StateInfo",
+ "nameLocations": [
+ "4431:11:7",
+ "4443:9:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "4431:21:7"
+ },
+ "referencedDeclaration": 1400,
+ "src": "4431:21:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4409:51:7"
+ },
+ "scope": 1327,
+ "src": "4302:266:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1013,
+ "nodeType": "Block",
+ "src": "5013:106:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1009,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 997,
+ "src": "5090:15:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ {
+ "id": 1010,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 999,
+ "src": "5107:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1005,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "5030:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5030:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1007,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5056:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "5030:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1008,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5065:24:7",
+ "memberName": "getRevocationProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2005,
+ "src": "5030:59:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5030:82:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1004,
+ "id": 1012,
+ "nodeType": "Return",
+ "src": "5023:89:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 995,
+ "nodeType": "StructuredDocumentation",
+ "src": "4574:290:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n @param revocationNonce - revocation nonce\n @param root - root of the tree\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce"
+ },
+ "functionSelector": "e26ecb0b",
+ "id": 1014,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProofByRoot",
+ "nameLocation": "4878:24:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1000,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 997,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "4919:15:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1014,
+ "src": "4912:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 996,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "4912:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 999,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "4952:4:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1014,
+ "src": "4944:12:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 998,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4944:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4902:60:7"
+ },
+ "returnParameters": {
+ "id": 1004,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1003,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1014,
+ "src": "4992:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1002,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1001,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "4992:6:7",
+ "4999:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "4992:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "4992:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4991:21:7"
+ },
+ "scope": 1327,
+ "src": "4869:250:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1026,
+ "nodeType": "Block",
+ "src": "5310:83:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1020,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "5327:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5327:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1022,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5353:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "5327:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1023,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5362:22:7",
+ "memberName": "getRevocationsTreeRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2021,
+ "src": "5327:57:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5327:59:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1019,
+ "id": 1025,
+ "nodeType": "Return",
+ "src": "5320:66:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1015,
+ "nodeType": "StructuredDocumentation",
+ "src": "5125:108:7",
+ "text": " @dev Retrieve RevocationsTree latest root.\n @return The latest RevocationsTree root"
+ },
+ "functionSelector": "01c85c77",
+ "id": 1027,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationsTreeRoot",
+ "nameLocation": "5247:22:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1016,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5269:2:7"
+ },
+ "returnParameters": {
+ "id": 1019,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1018,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1027,
+ "src": "5301:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1017,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5301:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5300:9:7"
+ },
+ "scope": 1327,
+ "src": "5238:155:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1043,
+ "nodeType": "Block",
+ "src": "5723:86:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1040,
+ "name": "rootsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1030,
+ "src": "5788:13:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1036,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "5740:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1037,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5740:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1038,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5766:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "5740:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1039,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5775:12:7",
+ "memberName": "getRootProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2044,
+ "src": "5740:47:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1041,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5740:62:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1035,
+ "id": 1042,
+ "nodeType": "Return",
+ "src": "5733:69:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1028,
+ "nodeType": "StructuredDocumentation",
+ "src": "5399:224:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root"
+ },
+ "functionSelector": "c1e32733",
+ "id": 1044,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProof",
+ "nameLocation": "5637:12:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1031,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1030,
+ "mutability": "mutable",
+ "name": "rootsTreeRoot",
+ "nameLocation": "5658:13:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1044,
+ "src": "5650:21:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1029,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5650:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5649:23:7"
+ },
+ "returnParameters": {
+ "id": 1035,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1034,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1044,
+ "src": "5702:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1033,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1032,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "5702:6:7",
+ "5709:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "5702:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "5702:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5701:21:7"
+ },
+ "scope": 1327,
+ "src": "5628:181:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1063,
+ "nodeType": "Block",
+ "src": "6228:99:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1060,
+ "name": "rootsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1047,
+ "src": "6306:13:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1056,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "6245:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6245:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1058,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6271:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "6245:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1059,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6280:25:7",
+ "memberName": "getRootProofWithStateInfo",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2084,
+ "src": "6245:60:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "id": 1061,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6245:75:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 1055,
+ "id": 1062,
+ "nodeType": "Return",
+ "src": "6238:82:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1045,
+ "nodeType": "StructuredDocumentation",
+ "src": "5815:256:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root and state info."
+ },
+ "functionSelector": "443d7534",
+ "id": 1064,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProofWithStateInfo",
+ "nameLocation": "6085:25:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1048,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1047,
+ "mutability": "mutable",
+ "name": "rootsTreeRoot",
+ "nameLocation": "6128:13:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1064,
+ "src": "6120:21:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1046,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6120:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6110:37:7"
+ },
+ "returnParameters": {
+ "id": 1055,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1051,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1064,
+ "src": "6177:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1050,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1049,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "6177:6:7",
+ "6184:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "6177:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "6177:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1054,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1064,
+ "src": "6198:28:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 1053,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1052,
+ "name": "IdentityLib.StateInfo",
+ "nameLocations": [
+ "6198:11:7",
+ "6210:9:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "6198:21:7"
+ },
+ "referencedDeclaration": 1400,
+ "src": "6198:21:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6176:51:7"
+ },
+ "scope": 1327,
+ "src": "6076:251:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1083,
+ "nodeType": "Block",
+ "src": "6756:99:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1079,
+ "name": "claimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "6827:14:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1080,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "6843:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1075,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "6773:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6773:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1077,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6799:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "6773:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1078,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6808:18:7",
+ "memberName": "getRootProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2107,
+ "src": "6773:53:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6773:75:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1074,
+ "id": 1082,
+ "nodeType": "Return",
+ "src": "6766:82:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1065,
+ "nodeType": "StructuredDocumentation",
+ "src": "6333:280:7",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n @param claimsTreeRoot - claims tree root\n @param root - root of the tree\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root"
+ },
+ "functionSelector": "2d5c4f25",
+ "id": 1084,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProofByRoot",
+ "nameLocation": "6627:18:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1070,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1067,
+ "mutability": "mutable",
+ "name": "claimsTreeRoot",
+ "nameLocation": "6663:14:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1084,
+ "src": "6655:22:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1066,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6655:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1069,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "6695:4:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1084,
+ "src": "6687:12:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1068,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6687:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6645:60:7"
+ },
+ "returnParameters": {
+ "id": 1074,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1073,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1084,
+ "src": "6735:19:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1072,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1071,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "6735:6:7",
+ "6742:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "6735:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "6735:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6734:21:7"
+ },
+ "scope": 1327,
+ "src": "6618:237:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1096,
+ "nodeType": "Block",
+ "src": "7028:77:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1090,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "7045:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7045:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1092,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7071:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "7045:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1093,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7080:16:7",
+ "memberName": "getRootsTreeRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2123,
+ "src": "7045:51:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7045:53:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1089,
+ "id": 1095,
+ "nodeType": "Return",
+ "src": "7038:60:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1085,
+ "nodeType": "StructuredDocumentation",
+ "src": "6861:96:7",
+ "text": " @dev Retrieve RootsTree latest root.\n @return The latest RootsTree root"
+ },
+ "functionSelector": "da68a0b1",
+ "id": 1097,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootsTreeRoot",
+ "nameLocation": "6971:16:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1086,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6987:2:7"
+ },
+ "returnParameters": {
+ "id": 1089,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1088,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1097,
+ "src": "7019:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1087,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7019:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7018:9:7"
+ },
+ "scope": 1327,
+ "src": "6962:143:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1113,
+ "nodeType": "Block",
+ "src": "7389:81:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1110,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1100,
+ "src": "7457:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1106,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "7406:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7406:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1108,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7432:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "7406:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1109,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7441:15:7",
+ "memberName": "getRootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2216,
+ "src": "7406:50:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Roots_$1390_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct IdentityLib.Roots memory)"
+ }
+ },
+ "id": 1111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7406:57:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "functionReturnParameters": 1105,
+ "id": 1112,
+ "nodeType": "Return",
+ "src": "7399:64:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1098,
+ "nodeType": "StructuredDocumentation",
+ "src": "7111:178:7",
+ "text": " @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n by state\n @param state identity state\n @return set of roots"
+ },
+ "functionSelector": "b8db6871",
+ "id": 1114,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootsByState",
+ "nameLocation": "7303:15:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1101,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1100,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "7327:5:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1114,
+ "src": "7319:13:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1099,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7319:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7318:15:7"
+ },
+ "returnParameters": {
+ "id": 1105,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1104,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1114,
+ "src": "7363:24:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ },
+ "typeName": {
+ "id": 1103,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1102,
+ "name": "IdentityLib.Roots",
+ "nameLocations": [
+ "7363:11:7",
+ "7375:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "7363:17:7"
+ },
+ "referencedDeclaration": 1390,
+ "src": "7363:17:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7362:26:7"
+ },
+ "scope": 1327,
+ "src": "7294:176:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 93
+ ],
+ "body": {
+ "id": 1125,
+ "nodeType": "Block",
+ "src": "7597:61:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1120,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "7614:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7614:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1122,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7640:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "7614:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1123,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7649:2:7",
+ "memberName": "id",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1348,
+ "src": "7614:37:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1119,
+ "id": 1124,
+ "nodeType": "Return",
+ "src": "7607:44:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1115,
+ "nodeType": "StructuredDocumentation",
+ "src": "7476:69:7",
+ "text": " @dev returns identity Id\n @return uint256 Id"
+ },
+ "functionSelector": "5d1ca631",
+ "id": 1126,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getId",
+ "nameLocation": "7559:5:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1116,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7564:2:7"
+ },
+ "returnParameters": {
+ "id": 1119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1118,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1126,
+ "src": "7588:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1117,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7588:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7587:9:7"
+ },
+ "scope": 1327,
+ "src": "7550:108:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1137,
+ "nodeType": "Block",
+ "src": "7820:76:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1132,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "7837:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1133,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7837:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1134,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7863:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "7837:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1135,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7872:17:7",
+ "memberName": "isOldStateGenesis",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1352,
+ "src": "7837:52:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 1131,
+ "id": 1136,
+ "nodeType": "Return",
+ "src": "7830:59:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1127,
+ "nodeType": "StructuredDocumentation",
+ "src": "7664:92:7",
+ "text": " @dev returns isOldStateGenesis flag\n @return bool isOldStateGenesis"
+ },
+ "functionSelector": "f84c7c1e",
+ "id": 1138,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getIsOldStateGenesis",
+ "nameLocation": "7770:20:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1128,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7790:2:7"
+ },
+ "returnParameters": {
+ "id": 1131,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1130,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1138,
+ "src": "7814:4:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1129,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7814:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7813:6:7"
+ },
+ "scope": 1327,
+ "src": "7761:135:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1150,
+ "nodeType": "Block",
+ "src": "8068:94:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1144,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "8085:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8085:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1146,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8111:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "8085:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1147,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8120:24:7",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8085:59:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1148,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8145:10:7",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "8085:70:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1143,
+ "id": 1149,
+ "nodeType": "Return",
+ "src": "8078:77:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1139,
+ "nodeType": "StructuredDocumentation",
+ "src": "7902:91:7",
+ "text": " @dev returns latest published claims tree root\n @return claimsRoot"
+ },
+ "functionSelector": "523b8136",
+ "id": 1151,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getLatestPublishedClaimsRoot",
+ "nameLocation": "8007:28:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1140,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8035:2:7"
+ },
+ "returnParameters": {
+ "id": 1143,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1142,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1151,
+ "src": "8059:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1141,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8059:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8058:9:7"
+ },
+ "scope": 1327,
+ "src": "7998:164:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1163,
+ "nodeType": "Block",
+ "src": "8348:99:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1157,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "8365:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1158,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8365:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1159,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8391:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "8365:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1160,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8400:24:7",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8365:59:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1161,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8425:15:7",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "8365:75:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1156,
+ "id": 1162,
+ "nodeType": "Return",
+ "src": "8358:82:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1152,
+ "nodeType": "StructuredDocumentation",
+ "src": "8168:100:7",
+ "text": " @dev returns latest published revocation tree root\n @return revocationsRoot"
+ },
+ "functionSelector": "9674cfa4",
+ "id": 1164,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getLatestPublishedRevocationsRoot",
+ "nameLocation": "8282:33:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1153,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8315:2:7"
+ },
+ "returnParameters": {
+ "id": 1156,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1155,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1164,
+ "src": "8339:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1154,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8339:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8338:9:7"
+ },
+ "scope": 1327,
+ "src": "8273:174:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1176,
+ "nodeType": "Block",
+ "src": "8616:93:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1170,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "8633:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8633:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1172,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8659:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "8633:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1173,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8668:24:7",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8633:59:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1174,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8693:9:7",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "8633:69:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1169,
+ "id": 1175,
+ "nodeType": "Return",
+ "src": "8626:76:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1165,
+ "nodeType": "StructuredDocumentation",
+ "src": "8453:89:7",
+ "text": " @dev returns latest published roots tree root\n @return rootsRoot"
+ },
+ "functionSelector": "c6365a3b",
+ "id": 1177,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getLatestPublishedRootsRoot",
+ "nameLocation": "8556:27:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1166,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8583:2:7"
+ },
+ "returnParameters": {
+ "id": 1169,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1168,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1177,
+ "src": "8607:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1167,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8607:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8606:9:7"
+ },
+ "scope": 1327,
+ "src": "8547:162:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1188,
+ "nodeType": "Block",
+ "src": "8881:79:7",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1183,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "8898:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8898:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1185,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8924:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "8898:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1186,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8933:20:7",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "8898:55:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1182,
+ "id": 1187,
+ "nodeType": "Return",
+ "src": "8891:62:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1178,
+ "nodeType": "StructuredDocumentation",
+ "src": "8715:96:7",
+ "text": " @dev returns identity latest state\n @return uint256 identityLatestState"
+ },
+ "functionSelector": "3d59ec60",
+ "id": 1189,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getLatestPublishedState",
+ "nameLocation": "8825:23:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1179,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8848:2:7"
+ },
+ "returnParameters": {
+ "id": 1182,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1181,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1189,
+ "src": "8872:7:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1180,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8872:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8871:9:7"
+ },
+ "scope": 1327,
+ "src": "8816:144:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 144
+ ],
+ "body": {
+ "id": 1213,
+ "nodeType": "Block",
+ "src": "9289:166:7",
+ "statements": [
+ {
+ "assignments": [
+ 1201
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1201,
+ "mutability": "mutable",
+ "name": "latestState",
+ "nameLocation": "9307:11:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1213,
+ "src": "9299:19:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1200,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9299:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1206,
+ "initialValue": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1202,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "9321:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1203,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9321:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1204,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9347:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "9321:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1205,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9356:20:7",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "9321:55:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9299:77:7"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1208,
+ "name": "id",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1192,
+ "src": "9425:2:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1209,
+ "name": "latestState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1201,
+ "src": "9429:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1210,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1194,
+ "src": "9442:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 1207,
+ "name": "getRevocationStatusByIdAndState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1304,
+ "src": "9393:31:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint64_$returns$_t_struct$_CredentialStatus_$133_memory_ptr_$",
+ "typeString": "function (uint256,uint256,uint64) view returns (struct IOnchainCredentialStatusResolver.CredentialStatus memory)"
+ }
+ },
+ "id": 1211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9393:55:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus memory"
+ }
+ },
+ "functionReturnParameters": 1199,
+ "id": 1212,
+ "nodeType": "Return",
+ "src": "9386:62:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1190,
+ "nodeType": "StructuredDocumentation",
+ "src": "8966:195:7",
+ "text": " @dev returns revocation status of a claim using given revocation nonce\n @param id Issuer's identifier\n @param nonce Revocation nonce\n @return CredentialStatus"
+ },
+ "functionSelector": "110c96a7",
+ "id": 1214,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationStatus",
+ "nameLocation": "9175:19:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1195,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1192,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "9212:2:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1214,
+ "src": "9204:10:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1191,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9204:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1194,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "9231:5:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1214,
+ "src": "9224:12:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1193,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "9224:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9194:48:7"
+ },
+ "returnParameters": {
+ "id": 1199,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1198,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1214,
+ "src": "9264:23:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ },
+ "typeName": {
+ "id": 1197,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1196,
+ "name": "CredentialStatus",
+ "nameLocations": [
+ "9264:16:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 133,
+ "src": "9264:16:7"
+ },
+ "referencedDeclaration": 133,
+ "src": "9264:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9263:25:7"
+ },
+ "scope": 1327,
+ "src": "9166:289:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 157
+ ],
+ "body": {
+ "id": 1303,
+ "nodeType": "Block",
+ "src": "9867:1058:7",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1233,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1228,
+ "name": "id",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1217,
+ "src": "9885:2:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1229,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "9891:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9891:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1231,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9917:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "9891:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1232,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9926:2:7",
+ "memberName": "id",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1348,
+ "src": "9891:37:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9885:43:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4964656e74697479206964206d69736d61746368",
+ "id": 1234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9930:22:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e",
+ "typeString": "literal_string \"Identity id mismatch\""
+ },
+ "value": "Identity id mismatch"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e",
+ "typeString": "literal_string \"Identity id mismatch\""
+ }
+ ],
+ "id": 1227,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9877:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1235,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9877:76:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1236,
+ "nodeType": "ExpressionStatement",
+ "src": "9877:76:7"
+ },
+ {
+ "assignments": [
+ 1241
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1241,
+ "mutability": "mutable",
+ "name": "historicalStates",
+ "nameLocation": "9988:16:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1303,
+ "src": "9963:41:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ },
+ "typeName": {
+ "id": 1240,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1239,
+ "name": "IdentityLib.Roots",
+ "nameLocations": [
+ "9963:11:7",
+ "9975:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "9963:17:7"
+ },
+ "referencedDeclaration": 1390,
+ "src": "9963:17:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1248,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1246,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1219,
+ "src": "10084:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1242,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "10007:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10007:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1244,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10046:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "10007:47:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1245,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10068:15:7",
+ "memberName": "getRootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2216,
+ "src": "10007:76:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Roots_$1390_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct IdentityLib.Roots memory)"
+ }
+ },
+ "id": 1247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10007:83:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9963:127:7"
+ },
+ {
+ "assignments": [
+ 1251
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1251,
+ "mutability": "mutable",
+ "name": "issuerStates",
+ "nameLocation": "10126:12:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1303,
+ "src": "10100:38:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots"
+ },
+ "typeName": {
+ "id": 1250,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1249,
+ "name": "IdentityStateRoots",
+ "nameLocations": [
+ "10100:18:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 125,
+ "src": "10100:18:7"
+ },
+ "referencedDeclaration": 125,
+ "src": "10100:18:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1261,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1253,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1219,
+ "src": "10181:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1254,
+ "name": "historicalStates",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1241,
+ "src": "10213:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "id": 1255,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10230:9:7",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "10213:26:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1256,
+ "name": "historicalStates",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1241,
+ "src": "10269:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "id": 1257,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10286:10:7",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "10269:27:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1258,
+ "name": "historicalStates",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1241,
+ "src": "10330:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "id": 1259,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10347:15:7",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "10330:32:7",
+ "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"
+ }
+ ],
+ "id": 1252,
+ "name": "IdentityStateRoots",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 125,
+ "src": "10141:18:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_IdentityStateRoots_$125_storage_ptr_$",
+ "typeString": "type(struct IOnchainCredentialStatusResolver.IdentityStateRoots storage pointer)"
+ }
+ },
+ "id": 1260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "10174:5:7",
+ "10200:11:7",
+ "10253:14:7",
+ "10310:18:7"
+ ],
+ "names": [
+ "state",
+ "rootOfRoots",
+ "claimsTreeRoot",
+ "revocationTreeRoot"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "10141:232:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10100:273:7"
+ },
+ {
+ "assignments": [
+ 1266
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1266,
+ "mutability": "mutable",
+ "name": "p",
+ "nameLocation": "10404:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1303,
+ "src": "10384:21:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1265,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1264,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "10384:6:7",
+ "10391:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "10384:12:7"
+ },
+ "referencedDeclaration": 2979,
+ "src": "10384:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1275,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1271,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1221,
+ "src": "10481:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ {
+ "expression": {
+ "id": 1272,
+ "name": "historicalStates",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1241,
+ "src": "10500:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "id": 1273,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10517:15:7",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "10500:32:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1267,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "10408:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 1268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10408:25:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 1269,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10434:8:7",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "10408:34:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 1270,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10443:24:7",
+ "memberName": "getRevocationProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2005,
+ "src": "10408:59:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10408:134:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10384:158:7"
+ },
+ {
+ "assignments": [
+ 1278
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1278,
+ "mutability": "mutable",
+ "name": "mtp",
+ "nameLocation": "10565:3:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1303,
+ "src": "10552:16:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof"
+ },
+ "typeName": {
+ "id": 1277,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1276,
+ "name": "Proof",
+ "nameLocations": [
+ "10552:5:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 115,
+ "src": "10552:5:7"
+ },
+ "referencedDeclaration": 115,
+ "src": "10552:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1297,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1280,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10597:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1281,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10599:4:7",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2963,
+ "src": "10597:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1282,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10628:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1283,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10630:9:7",
+ "memberName": "existence",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2965,
+ "src": "10628:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "expression": {
+ "id": 1284,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10663:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1285,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10665:8:7",
+ "memberName": "siblings",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2968,
+ "src": "10663:10:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 1286,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10694:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1287,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10696:5:7",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2970,
+ "src": "10694:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1288,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10722:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1289,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10724:5:7",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2972,
+ "src": "10722:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1290,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10757:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1291,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10759:12:7",
+ "memberName": "auxExistence",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2974,
+ "src": "10757:14:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "expression": {
+ "id": 1292,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10795:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1293,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10797:8:7",
+ "memberName": "auxIndex",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2976,
+ "src": "10795:10:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 1294,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "10829:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 1295,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10831:8:7",
+ "memberName": "auxValue",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2978,
+ "src": "10829:10:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1279,
+ "name": "Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 115,
+ "src": "10571:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Proof_$115_storage_ptr_$",
+ "typeString": "type(struct IOnchainCredentialStatusResolver.Proof storage pointer)"
+ }
+ },
+ "id": 1296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "10591:4:7",
+ "10617:9:7",
+ "10653:8:7",
+ "10687:5:7",
+ "10715:5:7",
+ "10743:12:7",
+ "10785:8:7",
+ "10819:8:7"
+ ],
+ "names": [
+ "root",
+ "existence",
+ "siblings",
+ "index",
+ "value",
+ "auxExistence",
+ "auxIndex",
+ "auxValue"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "10571:279:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10552:298:7"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1299,
+ "name": "issuerStates",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1251,
+ "src": "10894:12:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory"
+ }
+ },
+ {
+ "id": 1300,
+ "name": "mtp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1278,
+ "src": "10913:3:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$115_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Proof_$115_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.Proof memory"
+ }
+ ],
+ "id": 1298,
+ "name": "CredentialStatus",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 133,
+ "src": "10868:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_CredentialStatus_$133_storage_ptr_$",
+ "typeString": "type(struct IOnchainCredentialStatusResolver.CredentialStatus storage pointer)"
+ }
+ },
+ "id": 1301,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "10886:6:7",
+ "10908:3:7"
+ ],
+ "names": [
+ "issuer",
+ "mtp"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "10868:50:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus memory"
+ }
+ },
+ "functionReturnParameters": 1226,
+ "id": 1302,
+ "nodeType": "Return",
+ "src": "10861:57:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1215,
+ "nodeType": "StructuredDocumentation",
+ "src": "9461:243:7",
+ "text": " @dev returns revocation status of a claim using given revocation nonce, id and state\n @param id Issuer's identifier\n @param state of the Issuer\n @param nonce Revocation nonce\n @return CredentialStatus"
+ },
+ "functionSelector": "aad72921",
+ "id": 1304,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationStatusByIdAndState",
+ "nameLocation": "9718:31:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1222,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1217,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "9767:2:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1304,
+ "src": "9759:10:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1216,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9759:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1219,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "9787:5:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1304,
+ "src": "9779:13:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9779:7:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1221,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "9809:5:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1304,
+ "src": "9802:12:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1220,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "9802:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9749:71:7"
+ },
+ "returnParameters": {
+ "id": 1226,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1225,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1304,
+ "src": "9842:23:7",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ },
+ "typeName": {
+ "id": 1224,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1223,
+ "name": "CredentialStatus",
+ "nameLocations": [
+ "9842:16:7"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 133,
+ "src": "9842:16:7"
+ },
+ "referencedDeclaration": 133,
+ "src": "9842:16:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr",
+ "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9841:25:7"
+ },
+ "scope": 1327,
+ "src": "9709:1216:7",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 8726
+ ],
+ "body": {
+ "id": 1325,
+ "nodeType": "Block",
+ "src": "11114:122:7",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "id": 1318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1313,
+ "name": "interfaceId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1307,
+ "src": "11143:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1315,
+ "name": "IIdentifiable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 94,
+ "src": "11163:13:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IIdentifiable_$94_$",
+ "typeString": "type(contract IIdentifiable)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_contract$_IIdentifiable_$94_$",
+ "typeString": "type(contract IIdentifiable)"
+ }
+ ],
+ "id": 1314,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "11158:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11158:19:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_contract$_IIdentifiable_$94",
+ "typeString": "type(contract IIdentifiable)"
+ }
+ },
+ "id": 1317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "11178:11:7",
+ "memberName": "interfaceId",
+ "nodeType": "MemberAccess",
+ "src": "11158:31:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "src": "11143:46:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 1321,
+ "name": "interfaceId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1307,
+ "src": "11217:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ ],
+ "expression": {
+ "id": 1319,
+ "name": "super",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -25,
+ "src": "11193:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_super$_IdentityBase_$1327_$",
+ "typeString": "type(contract super IdentityBase)"
+ }
+ },
+ "id": 1320,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11199:17:7",
+ "memberName": "supportsInterface",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8726,
+ "src": "11193:23:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
+ "typeString": "function (bytes4) view returns (bool)"
+ }
+ },
+ "id": 1322,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11193:36:7",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "11143:86:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 1312,
+ "id": 1324,
+ "nodeType": "Return",
+ "src": "11124:105:7"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1305,
+ "nodeType": "StructuredDocumentation",
+ "src": "10931:87:7",
+ "text": " @dev supportsInterface. Check if the contract supports the interface"
+ },
+ "functionSelector": "01ffc9a7",
+ "id": 1326,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "11032:17:7",
+ "nodeType": "FunctionDefinition",
+ "overrides": {
+ "id": 1309,
+ "nodeType": "OverrideSpecifier",
+ "overrides": [],
+ "src": "11090:8:7"
+ },
+ "parameters": {
+ "id": 1308,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1307,
+ "mutability": "mutable",
+ "name": "interfaceId",
+ "nameLocation": "11057:11:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1326,
+ "src": "11050:18:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 1306,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "11050:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11049:20:7"
+ },
+ "returnParameters": {
+ "id": 1312,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1311,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1326,
+ "src": "11108:4:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1310,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "11108:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11107:6:7"
+ },
+ "scope": 1327,
+ "src": "11023:213:7",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ }
+ ],
+ "scope": 1328,
+ "src": "459:10779:7",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:11203:7"
+ },
+ "id": 7
+ },
+ "@iden3/contracts/lib/IdentityLib.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/IdentityLib.sol",
+ "exportedSymbols": {
+ "GenesisUtils": [
+ 816
+ ],
+ "IState": [
+ 407
+ ],
+ "IdentityLib": [
+ 2217
+ ],
+ "PoseidonUnit3L": [
+ 2252
+ ],
+ "PoseidonUnit4L": [
+ 2263
+ ],
+ "SmtLib": [
+ 4449
+ ]
+ },
+ "id": 2218,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1329,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:8"
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/IState.sol",
+ "file": "../interfaces/IState.sol",
+ "id": 1331,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2218,
+ "sourceUnit": 408,
+ "src": "61:48:8",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1330,
+ "name": "IState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 407,
+ "src": "69:6:8",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/SmtLib.sol",
+ "file": "../lib/SmtLib.sol",
+ "id": 1333,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2218,
+ "sourceUnit": 4637,
+ "src": "110:41:8",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1332,
+ "name": "SmtLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4449,
+ "src": "118:6:8",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/Poseidon.sol",
+ "file": "../lib/Poseidon.sol",
+ "id": 1336,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2218,
+ "sourceUnit": 2515,
+ "src": "152:67:8",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1334,
+ "name": "PoseidonUnit3L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2252,
+ "src": "160:14:8",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1335,
+ "name": "PoseidonUnit4L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2263,
+ "src": "176:14:8",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/GenesisUtils.sol",
+ "file": "../lib/GenesisUtils.sol",
+ "id": 1338,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2218,
+ "sourceUnit": 817,
+ "src": "220:53:8",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1337,
+ "name": "GenesisUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 816,
+ "src": "228:12:8",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IdentityLib",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2217,
+ "linearizedBaseContracts": [
+ 2217
+ ],
+ "name": "IdentityLib",
+ "nameLocation": "343:11:8",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 1342,
+ "libraryName": {
+ "id": 1339,
+ "name": "SmtLib",
+ "nameLocations": [
+ "367:6:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4449,
+ "src": "367:6:8"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "361:29:8",
+ "typeName": {
+ "id": 1341,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1340,
+ "name": "SmtLib.Data",
+ "nameLocations": [
+ "378:6:8",
+ "385:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "378:11:8"
+ },
+ "referencedDeclaration": 2960,
+ "src": "378:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ }
+ },
+ {
+ "constant": true,
+ "functionSelector": "2c72e822",
+ "id": 1345,
+ "mutability": "constant",
+ "name": "IDENTITY_MAX_SMT_DEPTH",
+ "nameLocation": "420:22:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2217,
+ "src": "396:51:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1343,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "396:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3430",
+ "id": 1344,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "445:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ "value": "40"
+ },
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IdentityLib.Data",
+ "documentation": {
+ "id": 1346,
+ "nodeType": "StructuredDocumentation",
+ "src": "454:191:8",
+ "text": " @dev Data\n Id\n Identity latest state\n Is old state genesis flag\n State contract\n Mapping of roots by state\n Trees\n Last tree roots"
+ },
+ "id": 1371,
+ "members": [
+ {
+ "constant": false,
+ "id": 1348,
+ "mutability": "mutable",
+ "name": "id",
+ "nameLocation": "680:2:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "672:10:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1347,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "672:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1350,
+ "mutability": "mutable",
+ "name": "latestPublishedState",
+ "nameLocation": "700:20:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "692:28:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1349,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "692:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1352,
+ "mutability": "mutable",
+ "name": "isOldStateGenesis",
+ "nameLocation": "735:17:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "730:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1351,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "730:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1355,
+ "mutability": "mutable",
+ "name": "stateContract",
+ "nameLocation": "769:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "762:20:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ },
+ "typeName": {
+ "id": 1354,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1353,
+ "name": "IState",
+ "nameLocations": [
+ "762:6:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 407,
+ "src": "762:6:8"
+ },
+ "referencedDeclaration": 407,
+ "src": "762:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1360,
+ "mutability": "mutable",
+ "name": "rootsByState",
+ "nameLocation": "818:12:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "792:38:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots)"
+ },
+ "typeName": {
+ "id": 1359,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 1356,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "800:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "792:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 1358,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1357,
+ "name": "Roots",
+ "nameLocations": [
+ "811:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "811:5:8"
+ },
+ "referencedDeclaration": 1390,
+ "src": "811:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1363,
+ "mutability": "mutable",
+ "name": "trees",
+ "nameLocation": "846:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "840:11:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage_ptr",
+ "typeString": "struct IdentityLib.Trees"
+ },
+ "typeName": {
+ "id": 1362,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1361,
+ "name": "Trees",
+ "nameLocations": [
+ "840:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1382,
+ "src": "840:5:8"
+ },
+ "referencedDeclaration": 1382,
+ "src": "840:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage_ptr",
+ "typeString": "struct IdentityLib.Trees"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1366,
+ "mutability": "mutable",
+ "name": "latestPublishedTreeRoots",
+ "nameLocation": "867:24:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "861:30:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ },
+ "typeName": {
+ "id": 1365,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1364,
+ "name": "Roots",
+ "nameLocations": [
+ "861:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "861:5:8"
+ },
+ "referencedDeclaration": 1390,
+ "src": "861:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1370,
+ "mutability": "mutable",
+ "name": "__gap",
+ "nameLocation": "1258:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1371,
+ "src": "1246:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$43_storage_ptr",
+ "typeString": "uint256[43]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1367,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1246:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1369,
+ "length": {
+ "hexValue": "3433",
+ "id": 1368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1254:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_43_by_1",
+ "typeString": "int_const 43"
+ },
+ "value": "43"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1246:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$43_storage_ptr",
+ "typeString": "uint256[43]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Data",
+ "nameLocation": "657:4:8",
+ "nodeType": "StructDefinition",
+ "scope": 2217,
+ "src": "650:620:8",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IdentityLib.Trees",
+ "documentation": {
+ "id": 1372,
+ "nodeType": "StructuredDocumentation",
+ "src": "1276:37:8",
+ "text": " @dev SMT addresses"
+ },
+ "id": 1382,
+ "members": [
+ {
+ "constant": false,
+ "id": 1375,
+ "mutability": "mutable",
+ "name": "claimsTree",
+ "nameLocation": "1353:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1382,
+ "src": "1341:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 1374,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1373,
+ "name": "SmtLib.Data",
+ "nameLocations": [
+ "1341:6:8",
+ "1348:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "1341:11:8"
+ },
+ "referencedDeclaration": 2960,
+ "src": "1341:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1378,
+ "mutability": "mutable",
+ "name": "revocationsTree",
+ "nameLocation": "1385:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1382,
+ "src": "1373:27:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 1377,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1376,
+ "name": "SmtLib.Data",
+ "nameLocations": [
+ "1373:6:8",
+ "1380:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "1373:11:8"
+ },
+ "referencedDeclaration": 2960,
+ "src": "1373:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1381,
+ "mutability": "mutable",
+ "name": "rootsTree",
+ "nameLocation": "1422:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1382,
+ "src": "1410:21:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 1380,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1379,
+ "name": "SmtLib.Data",
+ "nameLocations": [
+ "1410:6:8",
+ "1417:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "1410:11:8"
+ },
+ "referencedDeclaration": 2960,
+ "src": "1410:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Trees",
+ "nameLocation": "1325:5:8",
+ "nodeType": "StructDefinition",
+ "scope": 2217,
+ "src": "1318:120:8",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IdentityLib.Roots",
+ "documentation": {
+ "id": 1383,
+ "nodeType": "StructuredDocumentation",
+ "src": "1444:36:8",
+ "text": " @dev set of roots"
+ },
+ "id": 1390,
+ "members": [
+ {
+ "constant": false,
+ "id": 1385,
+ "mutability": "mutable",
+ "name": "claimsRoot",
+ "nameLocation": "1516:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1390,
+ "src": "1508:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1384,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1508:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1387,
+ "mutability": "mutable",
+ "name": "revocationsRoot",
+ "nameLocation": "1544:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1390,
+ "src": "1536:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1386,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1536:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1389,
+ "mutability": "mutable",
+ "name": "rootsRoot",
+ "nameLocation": "1577:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1390,
+ "src": "1569:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1388,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1569:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Roots",
+ "nameLocation": "1492:5:8",
+ "nodeType": "StructDefinition",
+ "scope": 2217,
+ "src": "1485:108:8",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IdentityLib.StateInfo",
+ "documentation": {
+ "id": 1391,
+ "nodeType": "StructuredDocumentation",
+ "src": "1599:34:8",
+ "text": " @dev state info"
+ },
+ "id": 1400,
+ "members": [
+ {
+ "constant": false,
+ "id": 1393,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "1673:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1400,
+ "src": "1665:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1392,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1665:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1395,
+ "mutability": "mutable",
+ "name": "claimsRoot",
+ "nameLocation": "1696:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1400,
+ "src": "1688:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1394,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1688:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1397,
+ "mutability": "mutable",
+ "name": "revocationsRoot",
+ "nameLocation": "1724:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1400,
+ "src": "1716:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1396,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1716:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1399,
+ "mutability": "mutable",
+ "name": "rootsRoot",
+ "nameLocation": "1757:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1400,
+ "src": "1749:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1398,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1749:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "StateInfo",
+ "nameLocation": "1645:9:8",
+ "nodeType": "StructDefinition",
+ "scope": 2217,
+ "src": "1638:135:8",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1485,
+ "nodeType": "Block",
+ "src": "2258:518:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1416,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1410,
+ "src": "2276:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 1417,
+ "name": "IDENTITY_MAX_SMT_DEPTH",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1345,
+ "src": "2285:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2276:31:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "534d542064657074682069732067726561746572207468616e206d617820616c6c6f776564206465707468",
+ "id": 1419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2309:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db",
+ "typeString": "literal_string \"SMT depth is greater than max allowed depth\""
+ },
+ "value": "SMT depth is greater than max allowed depth"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db",
+ "typeString": "literal_string \"SMT depth is greater than max allowed depth\""
+ }
+ ],
+ "id": 1415,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "2268:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2268:87:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1421,
+ "nodeType": "ExpressionStatement",
+ "src": "2268:87:8"
+ },
+ {
+ "expression": {
+ "id": 1428,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 1422,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2365:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1424,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "2370:13:8",
+ "memberName": "stateContract",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1355,
+ "src": "2365:18:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1426,
+ "name": "_stateContractAddr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1406,
+ "src": "2393:18:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1425,
+ "name": "IState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 407,
+ "src": "2386:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IState_$407_$",
+ "typeString": "type(contract IState)"
+ }
+ },
+ "id": 1427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2386:26:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "src": "2365:47:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "id": 1429,
+ "nodeType": "ExpressionStatement",
+ "src": "2365:47:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1434,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1412,
+ "src": "2467:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 1431,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2430:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1432,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2435:13:8",
+ "memberName": "stateContract",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1355,
+ "src": "2430:18:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "id": 1433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2449:17:8",
+ "memberName": "isIdTypeSupported",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 306,
+ "src": "2430:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_bytes2_$returns$_t_bool_$",
+ "typeString": "function (bytes2) view external returns (bool)"
+ }
+ },
+ "id": 1435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2430:44:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "69642074797065206973206e6f7420737570706f72746564",
+ "id": 1436,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2476:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662",
+ "typeString": "literal_string \"id type is not supported\""
+ },
+ "value": "id type is not supported"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662",
+ "typeString": "literal_string \"id type is not supported\""
+ }
+ ],
+ "id": 1430,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "2422:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1437,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2422:81:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1438,
+ "nodeType": "ExpressionStatement",
+ "src": "2422:81:8"
+ },
+ {
+ "expression": {
+ "id": 1443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 1439,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2513:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1441,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "2518:17:8",
+ "memberName": "isOldStateGenesis",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1352,
+ "src": "2513:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 1442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2538:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "2513:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1444,
+ "nodeType": "ExpressionStatement",
+ "src": "2513:29:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1452,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1410,
+ "src": "2585:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1445,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2552:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1449,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2557:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "2552:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1450,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2563:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "2552:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1451,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2574:10:8",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3816,
+ "src": "2552:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256)"
+ }
+ },
+ "id": 1453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2552:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1454,
+ "nodeType": "ExpressionStatement",
+ "src": "2552:39:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1462,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1410,
+ "src": "2639:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1455,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2601:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1459,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2606:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "2601:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1460,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2612:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "2601:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1461,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2628:10:8",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3816,
+ "src": "2601:37:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256)"
+ }
+ },
+ "id": 1463,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2601:44:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1464,
+ "nodeType": "ExpressionStatement",
+ "src": "2601:44:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1472,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1410,
+ "src": "2687:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1465,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2655:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1469,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2660:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "2655:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1470,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2666:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "2655:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1471,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2676:10:8",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3816,
+ "src": "2655:31:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256)"
+ }
+ },
+ "id": 1473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2655:38:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1474,
+ "nodeType": "ExpressionStatement",
+ "src": "2655:38:8"
+ },
+ {
+ "expression": {
+ "id": 1483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 1475,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1404,
+ "src": "2703:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1477,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "2708:2:8",
+ "memberName": "id",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1348,
+ "src": "2703:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1480,
+ "name": "idType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1412,
+ "src": "2747:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ {
+ "id": 1481,
+ "name": "_identityAddr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1408,
+ "src": "2755:13:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1478,
+ "name": "GenesisUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 816,
+ "src": "2713:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_GenesisUtils_$816_$",
+ "typeString": "type(library GenesisUtils)"
+ }
+ },
+ "id": 1479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2726:20:8",
+ "memberName": "calcIdFromEthAddress",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 815,
+ "src": "2713:33:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (bytes2,address) pure returns (uint256)"
+ }
+ },
+ "id": 1482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2713:56:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2703:66:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1484,
+ "nodeType": "ExpressionStatement",
+ "src": "2703:66:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1401,
+ "nodeType": "StructuredDocumentation",
+ "src": "1779:299:8",
+ "text": " @dev Initialization of the library state variables\n @param _stateContractAddr - address of the State contract\n @param _identityAddr - address of the Identity contract, which calls this function\n @param depth - depth of identity SMTs\n @param idType - idType"
+ },
+ "functionSelector": "59a60691",
+ "id": 1486,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "initialize",
+ "nameLocation": "2092:10:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1413,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1404,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "2125:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1486,
+ "src": "2112:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1403,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1402,
+ "name": "Data",
+ "nameLocations": [
+ "2112:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "2112:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "2112:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1406,
+ "mutability": "mutable",
+ "name": "_stateContractAddr",
+ "nameLocation": "2147:18:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1486,
+ "src": "2139:26:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1405,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2139:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1408,
+ "mutability": "mutable",
+ "name": "_identityAddr",
+ "nameLocation": "2183:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1486,
+ "src": "2175:21:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1407,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2175:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1410,
+ "mutability": "mutable",
+ "name": "depth",
+ "nameLocation": "2214:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1486,
+ "src": "2206:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1409,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2206:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1412,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "2236:6:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1486,
+ "src": "2229:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 1411,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "2229:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2102:146:8"
+ },
+ "returnParameters": {
+ "id": 1414,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2258:0:8"
+ },
+ "scope": 2217,
+ "src": "2083:693:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1566,
+ "nodeType": "Block",
+ "src": "2926:404:8",
+ "statements": [
+ {
+ "assignments": [
+ 1502
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1502,
+ "mutability": "mutable",
+ "name": "claimIndex",
+ "nameLocation": "2954:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1566,
+ "src": "2936:28:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1500,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2936:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1501,
+ "length": {
+ "hexValue": "34",
+ "id": 1499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2944:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2936:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
+ "typeString": "uint256[4]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1503,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2936:28:8"
+ },
+ {
+ "assignments": [
+ 1509
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1509,
+ "mutability": "mutable",
+ "name": "claimValue",
+ "nameLocation": "2992:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1566,
+ "src": "2974:28:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1507,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2974:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1508,
+ "length": {
+ "hexValue": "34",
+ "id": 1506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2982:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2974:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
+ "typeString": "uint256[4]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1510,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2974:28:8"
+ },
+ {
+ "body": {
+ "id": 1539,
+ "nodeType": "Block",
+ "src": "3042:91:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1527,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1521,
+ "name": "claimIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1502,
+ "src": "3056:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ },
+ "id": 1523,
+ "indexExpression": {
+ "id": 1522,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3067:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "3056:13:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 1524,
+ "name": "claim",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1494,
+ "src": "3072:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8] calldata"
+ }
+ },
+ "id": 1526,
+ "indexExpression": {
+ "id": 1525,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3078:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3072:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3056:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1528,
+ "nodeType": "ExpressionStatement",
+ "src": "3056:24:8"
+ },
+ {
+ "expression": {
+ "id": 1537,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1529,
+ "name": "claimValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1509,
+ "src": "3094:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ },
+ "id": 1531,
+ "indexExpression": {
+ "id": 1530,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3105:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "3094:13:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 1532,
+ "name": "claim",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1494,
+ "src": "3110:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8] calldata"
+ }
+ },
+ "id": 1536,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 1535,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1533,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3116:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 1534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3120:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "3116:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3110:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3094:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1538,
+ "nodeType": "ExpressionStatement",
+ "src": "3094:28:8"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 1517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1515,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3030:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 1516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3034:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "3030:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1540,
+ "initializationExpression": {
+ "assignments": [
+ 1512
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1512,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "3023:1:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1540,
+ "src": "3017:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 1511,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "3017:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1514,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 1513,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3027:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3017:11:8"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 1519,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "3037:3:8",
+ "subExpression": {
+ "id": 1518,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1512,
+ "src": "3037:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 1520,
+ "nodeType": "ExpressionStatement",
+ "src": "3037:3:8"
+ },
+ "nodeType": "ForStatement",
+ "src": "3012:121:8"
+ },
+ {
+ "assignments": [
+ 1542
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1542,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "3150:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1566,
+ "src": "3142:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1541,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3142:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1547,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1545,
+ "name": "claimIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1502,
+ "src": "3186:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ ],
+ "expression": {
+ "id": 1543,
+ "name": "PoseidonUnit4L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2263,
+ "src": "3162:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$",
+ "typeString": "type(library PoseidonUnit4L)"
+ }
+ },
+ "id": 1544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3177:8:8",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2262,
+ "src": "3162:23:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[4] memory) pure returns (uint256)"
+ }
+ },
+ "id": 1546,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3162:35:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3142:55:8"
+ },
+ {
+ "assignments": [
+ 1549
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1549,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "3215:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1566,
+ "src": "3207:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1548,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3207:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1554,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1552,
+ "name": "claimValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1509,
+ "src": "3251:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
+ "typeString": "uint256[4] memory"
+ }
+ ],
+ "expression": {
+ "id": 1550,
+ "name": "PoseidonUnit4L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2263,
+ "src": "3227:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$",
+ "typeString": "type(library PoseidonUnit4L)"
+ }
+ },
+ "id": 1551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3242:8:8",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2262,
+ "src": "3227:23:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[4] memory) pure returns (uint256)"
+ }
+ },
+ "id": 1553,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3227:35:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3207:55:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1562,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1542,
+ "src": "3302:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1563,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1549,
+ "src": "3313:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1555,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1490,
+ "src": "3272:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1559,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3277:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "3272:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1560,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3283:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "3272:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1561,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3294:7:8",
+ "memberName": "addLeaf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3091,
+ "src": "3272:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 1564,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3272:51:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1565,
+ "nodeType": "ExpressionStatement",
+ "src": "3272:51:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1487,
+ "nodeType": "StructuredDocumentation",
+ "src": "2782:66:8",
+ "text": " @dev Add claim\n @param claim - claim data"
+ },
+ "functionSelector": "e1f0eaa9",
+ "id": 1567,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addClaim",
+ "nameLocation": "2862:8:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1495,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1490,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "2884:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1567,
+ "src": "2871:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1489,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1488,
+ "name": "Data",
+ "nameLocations": [
+ "2871:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "2871:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "2871:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1494,
+ "mutability": "mutable",
+ "name": "claim",
+ "nameLocation": "2910:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1567,
+ "src": "2890:25:8",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1491,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2890:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1493,
+ "length": {
+ "hexValue": "38",
+ "id": 1492,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2898:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2890:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2870:46:8"
+ },
+ "returnParameters": {
+ "id": 1496,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2926:0:8"
+ },
+ "scope": 2217,
+ "src": "2853:477:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1589,
+ "nodeType": "Block",
+ "src": "3569:68:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1585,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "3609:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1586,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1575,
+ "src": "3620:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1578,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1571,
+ "src": "3579:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1582,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3584:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "3579:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1583,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3590:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "3579:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1584,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3601:7:8",
+ "memberName": "addLeaf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3091,
+ "src": "3579:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 1587,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3579:51:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1588,
+ "nodeType": "ExpressionStatement",
+ "src": "3579:51:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1568,
+ "nodeType": "StructuredDocumentation",
+ "src": "3336:140:8",
+ "text": " @dev Add claim hash\n @param hashIndex - hash of claim index part\n @param hashValue - hash of claim value part"
+ },
+ "functionSelector": "06fb1575",
+ "id": 1590,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addClaimHash",
+ "nameLocation": "3490:12:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1576,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1571,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "3516:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1590,
+ "src": "3503:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1570,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1569,
+ "name": "Data",
+ "nameLocations": [
+ "3503:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "3503:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "3503:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1573,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "3530:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1590,
+ "src": "3522:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1572,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3522:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1575,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "3549:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1590,
+ "src": "3541:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1574,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3541:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3502:57:8"
+ },
+ "returnParameters": {
+ "id": 1577,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3569:0:8"
+ },
+ "scope": 2217,
+ "src": "3481:156:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1613,
+ "nodeType": "Block",
+ "src": "3833:80:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1608,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1596,
+ "src": "3886:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 1607,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3878:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1606,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3878:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1609,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3878:24:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1610,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3904:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1599,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1594,
+ "src": "3843:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1603,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3848:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "3843:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1604,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3854:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "3843:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1605,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3870:7:8",
+ "memberName": "addLeaf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3091,
+ "src": "3843:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 1611,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3843:63:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1612,
+ "nodeType": "ExpressionStatement",
+ "src": "3843:63:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1591,
+ "nodeType": "StructuredDocumentation",
+ "src": "3643:112:8",
+ "text": " @dev Revoke claim using it's revocationNonce\n @param revocationNonce - revocation nonce"
+ },
+ "functionSelector": "8ad7195d",
+ "id": 1614,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "revokeClaim",
+ "nameLocation": "3769:11:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1597,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1594,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "3794:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1614,
+ "src": "3781:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1593,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1592,
+ "name": "Data",
+ "nameLocations": [
+ "3781:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "3781:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "3781:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1596,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "3807:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1614,
+ "src": "3800:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1595,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3800:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3780:43:8"
+ },
+ "returnParameters": {
+ "id": 1598,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3833:0:8"
+ },
+ "scope": 2217,
+ "src": "3760:153:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1777,
+ "nodeType": "Block",
+ "src": "4019:2307:8",
+ "statements": [
+ {
+ "assignments": [
+ 1622
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1622,
+ "mutability": "mutable",
+ "name": "oldIdentityState",
+ "nameLocation": "4037:16:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "4029:24:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4029:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1625,
+ "initialValue": {
+ "expression": {
+ "id": 1623,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4056:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1624,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4061:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "4056:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4029:52:8"
+ },
+ {
+ "assignments": [
+ 1627
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1627,
+ "mutability": "mutable",
+ "name": "currentClaimsTreeRoot",
+ "nameLocation": "4099:21:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "4091:29:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1626,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4091:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1633,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1628,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4123:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1629,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4128:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "4123:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1630,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4134:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "4123:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1631,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4145:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "4123:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1632,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4123:31:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4091:63:8"
+ },
+ {
+ "assignments": [
+ 1635
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1635,
+ "mutability": "mutable",
+ "name": "currentRevocationsTreeRoot",
+ "nameLocation": "4172:26:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "4164:34:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1634,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4164:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1641,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1636,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4201:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1637,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4206:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "4201:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1638,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4212:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "4201:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1639,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4228:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "4201:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4201:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4164:73:8"
+ },
+ {
+ "assignments": [
+ 1643
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1643,
+ "mutability": "mutable",
+ "name": "currentRootsTreeRoot",
+ "nameLocation": "4255:20:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "4247:28:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1642,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4247:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1649,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1644,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4278:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1645,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4283:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "4278:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1646,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4289:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "4278:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1647,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4299:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "4278:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1648,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4278:30:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4247:61:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1670,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1663,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 1651,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4341:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1652,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4346:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "4341:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1653,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4371:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "4341:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 1654,
+ "name": "currentClaimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1627,
+ "src": "4385:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4341:65:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 1656,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4340:67:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 1657,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4428:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1658,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4433:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "4428:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1659,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4458:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "4428:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 1660,
+ "name": "currentRevocationsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "4477:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4428:75:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 1662,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4427:77:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4340:164:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1668,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 1664,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4525:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1665,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4530:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "4525:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1666,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4555:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "4525:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 1667,
+ "name": "currentRootsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1643,
+ "src": "4568:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4525:63:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 1669,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4524:65:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4340:249:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4964656e7469747920747265657320686176656e2774206368616e676564",
+ "id": 1671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4603:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4",
+ "typeString": "literal_string \"Identity trees haven't changed\""
+ },
+ "value": "Identity trees haven't changed"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4",
+ "typeString": "literal_string \"Identity trees haven't changed\""
+ }
+ ],
+ "id": 1650,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "4319:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1672,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4319:326:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1673,
+ "nodeType": "ExpressionStatement",
+ "src": "4319:326:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 1674,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4723:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1675,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4728:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "4723:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1676,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4753:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "4723:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 1677,
+ "name": "currentClaimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1627,
+ "src": "4767:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4723:65:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1691,
+ "nodeType": "IfStatement",
+ "src": "4719:150:8",
+ "trueBody": {
+ "id": 1690,
+ "nodeType": "Block",
+ "src": "4790:79:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1686,
+ "name": "currentClaimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1627,
+ "src": "4833:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1687,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4856:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1679,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4804:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1683,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4809:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "4804:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1684,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4815:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "4804:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1685,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4825:7:8",
+ "memberName": "addLeaf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3091,
+ "src": "4804:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 1688,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4804:54:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1689,
+ "nodeType": "ExpressionStatement",
+ "src": "4804:54:8"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 1693
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1693,
+ "mutability": "mutable",
+ "name": "newIdentityState",
+ "nameLocation": "4887:16:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "4879:24:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1692,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4879:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1697,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1695,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4924:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ ],
+ "id": 1694,
+ "name": "calcIdentityState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1808,
+ "src": "4906:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4906:23:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4879:50:8"
+ },
+ {
+ "expression": {
+ "id": 1702,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 1698,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "4978:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1700,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4983:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "4978:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1701,
+ "name": "newIdentityState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1693,
+ "src": "5006:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4978:44:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1703,
+ "nodeType": "ExpressionStatement",
+ "src": "4978:44:8"
+ },
+ {
+ "expression": {
+ "id": 1710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "expression": {
+ "id": 1704,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5032:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1707,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5037:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5032:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1708,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5062:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "5032:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1709,
+ "name": "currentClaimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1627,
+ "src": "5075:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5032:64:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1711,
+ "nodeType": "ExpressionStatement",
+ "src": "5032:64:8"
+ },
+ {
+ "expression": {
+ "id": 1718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "expression": {
+ "id": 1712,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5106:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1715,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5111:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5106:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1716,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5136:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "5106:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1717,
+ "name": "currentRevocationsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "5154:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5106:74:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1719,
+ "nodeType": "ExpressionStatement",
+ "src": "5106:74:8"
+ },
+ {
+ "expression": {
+ "id": 1730,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "expression": {
+ "id": 1720,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5190:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1723,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5195:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5190:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1724,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5220:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "5190:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1725,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5232:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1726,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5237:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "5232:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1727,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5243:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "5232:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1728,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5253:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "5232:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5232:30:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5190:72:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1731,
+ "nodeType": "ExpressionStatement",
+ "src": "5190:72:8"
+ },
+ {
+ "assignments": [
+ 1733
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1733,
+ "mutability": "mutable",
+ "name": "isOldStateGenesis",
+ "nameLocation": "5278:17:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1777,
+ "src": "5273:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1732,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5273:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1736,
+ "initialValue": {
+ "expression": {
+ "id": 1734,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5298:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1735,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5303:17:8",
+ "memberName": "isOldStateGenesis",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1352,
+ "src": "5298:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5273:47:8"
+ },
+ {
+ "expression": {
+ "id": 1741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 1737,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5607:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1739,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5612:17:8",
+ "memberName": "isOldStateGenesis",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1352,
+ "src": "5607:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 1740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5632:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "5607:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1742,
+ "nodeType": "ExpressionStatement",
+ "src": "5607:30:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1744,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5674:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ {
+ "expression": {
+ "id": 1745,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5692:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1746,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5697:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "5692:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "expression": {
+ "expression": {
+ "id": 1748,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5767:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1749,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5772:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5767:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1750,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5797:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "5767:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1751,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5842:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1752,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5847:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5842:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1753,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5872:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "5842:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1754,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "5916:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1755,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5921:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "5916:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1756,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5946:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "5916:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1747,
+ "name": "Roots",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1390,
+ "src": "5731:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Roots_$1390_storage_ptr_$",
+ "typeString": "type(struct IdentityLib.Roots storage pointer)"
+ }
+ },
+ "id": 1757,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "5755:10:8",
+ "5825:15:8",
+ "5905:9:8"
+ ],
+ "names": [
+ "claimsRoot",
+ "revocationsRoot",
+ "rootsRoot"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "5731:239:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ ],
+ "id": 1743,
+ "name": "writeHistory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2171,
+ "src": "5648:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_struct$_Roots_$1390_memory_ptr_$returns$__$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256,struct IdentityLib.Roots memory)"
+ }
+ },
+ "id": 1758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5648:332:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1759,
+ "nodeType": "ExpressionStatement",
+ "src": "5648:332:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1765,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "6092:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6097:2:8",
+ "memberName": "id",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1348,
+ "src": "6092:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1767,
+ "name": "oldIdentityState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "6113:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1768,
+ "name": "newIdentityState",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1693,
+ "src": "6143:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1769,
+ "name": "isOldStateGenesis",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1733,
+ "src": "6173:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "31",
+ "id": 1770,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6204:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6284:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1772,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "6274:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ },
+ "typeName": {
+ "id": 1771,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "6278:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ }
+ },
+ "id": 1774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6274:12:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 1760,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1618,
+ "src": "6040:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1763,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6045:13:8",
+ "memberName": "stateContract",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1355,
+ "src": "6040:18:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IState_$407",
+ "typeString": "contract IState"
+ }
+ },
+ "id": 1764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6059:19:8",
+ "memberName": "transitStateGeneric",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 362,
+ "src": "6040:38:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,uint256,uint256,bool,uint256,bytes memory) external"
+ }
+ },
+ "id": 1775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6040:279:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1776,
+ "nodeType": "ExpressionStatement",
+ "src": "6040:279:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1615,
+ "nodeType": "StructuredDocumentation",
+ "src": "3919:45:8",
+ "text": " @dev Make state transition"
+ },
+ "functionSelector": "2eb747d2",
+ "id": 1778,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transitState",
+ "nameLocation": "3978:12:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1619,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1618,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "4004:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1778,
+ "src": "3991:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1617,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1616,
+ "name": "Data",
+ "nameLocations": [
+ "3991:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "3991:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "3991:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3990:19:8"
+ },
+ "returnParameters": {
+ "id": 1620,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4019:0:8"
+ },
+ "scope": 2217,
+ "src": "3969:2357:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1807,
+ "nodeType": "Block",
+ "src": "6489:272:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "components": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1789,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1782,
+ "src": "6581:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1790,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6586:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "6581:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1791,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6592:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "6581:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1792,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6603:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "6581:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6581:31:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1794,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1782,
+ "src": "6634:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1795,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6639:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "6634:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1796,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6645:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "6634:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1797,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6661:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "6634:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1798,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6634:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1799,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1782,
+ "src": "6692:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1800,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6697:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "6692:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1801,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6703:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "6692:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1802,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6713:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "6692:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1803,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6692:30:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1804,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6559:181:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3] memory"
+ }
+ ],
+ "expression": {
+ "id": 1787,
+ "name": "PoseidonUnit3L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2252,
+ "src": "6518:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$",
+ "typeString": "type(library PoseidonUnit3L)"
+ }
+ },
+ "id": 1788,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6533:8:8",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2251,
+ "src": "6518:23:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[3] memory) pure returns (uint256)"
+ }
+ },
+ "id": 1805,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6518:236:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1786,
+ "id": 1806,
+ "nodeType": "Return",
+ "src": "6499:255:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1779,
+ "nodeType": "StructuredDocumentation",
+ "src": "6332:76:8",
+ "text": " @dev Calculate IdentityState\n @return IdentityState"
+ },
+ "functionSelector": "1a3046d7",
+ "id": 1808,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "calcIdentityState",
+ "nameLocation": "6422:17:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1783,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1782,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "6453:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1808,
+ "src": "6440:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1781,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1780,
+ "name": "Data",
+ "nameLocations": [
+ "6440:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "6440:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "6440:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6439:19:8"
+ },
+ "returnParameters": {
+ "id": 1786,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1785,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1808,
+ "src": "6480:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1784,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6480:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6479:9:8"
+ },
+ "scope": 2217,
+ "src": "6413:348:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1830,
+ "nodeType": "Block",
+ "src": "7203:176:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1824,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1814,
+ "src": "7286:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1825,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1812,
+ "src": "7318:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1826,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7323:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "7318:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1827,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7348:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "7318:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1820,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1812,
+ "src": "7232:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1821,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7237:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "7232:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1822,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7243:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "7232:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1823,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7254:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "7232:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7232:140:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1819,
+ "id": 1829,
+ "nodeType": "Return",
+ "src": "7213:159:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1809,
+ "nodeType": "StructuredDocumentation",
+ "src": "6767:299:8",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n Note that proof is taken for the latest published claims tree root.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "00cf0890",
+ "id": 1831,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProof",
+ "nameLocation": "7080:13:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1815,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1812,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "7116:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1831,
+ "src": "7103:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1811,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1810,
+ "name": "Data",
+ "nameLocations": [
+ "7103:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "7103:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "7103:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1814,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "7138:14:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1831,
+ "src": "7130:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1813,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7130:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7093:65:8"
+ },
+ "returnParameters": {
+ "id": 1819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1818,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1831,
+ "src": "7182:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1817,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1816,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "7182:6:8",
+ "7189:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "7182:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "7182:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7181:21:8"
+ },
+ "scope": 2217,
+ "src": "7071:308:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1870,
+ "nodeType": "Block",
+ "src": "7883:495:8",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "id": 1850,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "7968:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1851,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "8000:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1852,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8005:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8000:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1853,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8030:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "8000:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1846,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "7914:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1847,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7919:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "7914:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1848,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7925:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "7914:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1849,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7936:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "7914:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7914:140:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1856,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "8103:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1857,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8108:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "8103:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1858,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "8158:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1859,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8163:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8158:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1860,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8188:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "8158:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1861,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "8233:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1862,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8238:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8233:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1863,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8263:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "8233:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1864,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1835,
+ "src": "8307:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1865,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8312:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "8307:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1866,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8337:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "8307:39:8",
+ "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"
+ }
+ ],
+ "id": 1855,
+ "name": "StateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1400,
+ "src": "8068:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$",
+ "typeString": "type(struct IdentityLib.StateInfo storage pointer)"
+ }
+ },
+ "id": 1867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "8096:5:8",
+ "8146:10:8",
+ "8216:15:8",
+ "8296:9:8"
+ ],
+ "names": [
+ "state",
+ "claimsRoot",
+ "revocationsRoot",
+ "rootsRoot"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "8068:293:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo memory"
+ }
+ }
+ ],
+ "id": 1868,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "7900:471:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 1845,
+ "id": 1869,
+ "nodeType": "Return",
+ "src": "7893:478:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1832,
+ "nodeType": "StructuredDocumentation",
+ "src": "7385:330:8",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n Note that proof is taken for the latest published claims tree root.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info"
+ },
+ "functionSelector": "d5a3b14e",
+ "id": 1871,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProofWithStateInfo",
+ "nameLocation": "7729:26:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1838,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1835,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "7778:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1871,
+ "src": "7765:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1834,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1833,
+ "name": "Data",
+ "nameLocations": [
+ "7765:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "7765:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "7765:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1837,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "7800:14:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1871,
+ "src": "7792:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1836,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7792:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7755:65:8"
+ },
+ "returnParameters": {
+ "id": 1845,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1841,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1871,
+ "src": "7844:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1840,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1839,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "7844:6:8",
+ "7851:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "7844:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "7844:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1844,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1871,
+ "src": "7865:16:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 1843,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1842,
+ "name": "StateInfo",
+ "nameLocations": [
+ "7865:9:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "7865:9:8"
+ },
+ "referencedDeclaration": 1400,
+ "src": "7865:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7843:39:8"
+ },
+ "scope": 2217,
+ "src": "7720:658:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1893,
+ "nodeType": "Block",
+ "src": "8826:82:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1889,
+ "name": "claimIndexHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1877,
+ "src": "8880:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1890,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1879,
+ "src": "8896:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1885,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1875,
+ "src": "8843:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1886,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8848:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "8843:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1887,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8854:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "8843:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1888,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8865:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "8843:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8843:58:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1884,
+ "id": 1892,
+ "nodeType": "Return",
+ "src": "8836:65:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1872,
+ "nodeType": "StructuredDocumentation",
+ "src": "8384:277:8",
+ "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n @param claimIndexHash - hash of Claim Index\n @param root - root of the tree\n @return The ClaimsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "d5818b8e",
+ "id": 1894,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimProofByRoot",
+ "nameLocation": "8675:19:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1880,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1875,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "8717:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1894,
+ "src": "8704:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1874,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1873,
+ "name": "Data",
+ "nameLocations": [
+ "8704:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "8704:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "8704:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1877,
+ "mutability": "mutable",
+ "name": "claimIndexHash",
+ "nameLocation": "8739:14:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1894,
+ "src": "8731:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1876,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8731:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1879,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "8771:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1894,
+ "src": "8763:12:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1878,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8763:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8694:87:8"
+ },
+ "returnParameters": {
+ "id": 1884,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1883,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1894,
+ "src": "8805:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1882,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1881,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "8805:6:8",
+ "8812:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "8805:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "8805:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8804:21:8"
+ },
+ "scope": 2217,
+ "src": "8666:242:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1909,
+ "nodeType": "Block",
+ "src": "9095:55:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1903,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1898,
+ "src": "9112:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1904,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9117:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "9112:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1905,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9123:10:8",
+ "memberName": "claimsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1375,
+ "src": "9112:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1906,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9134:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "9112:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 1907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9112:31:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 1902,
+ "id": 1908,
+ "nodeType": "Return",
+ "src": "9105:38:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1895,
+ "nodeType": "StructuredDocumentation",
+ "src": "8914:98:8",
+ "text": " @dev Retrieve ClaimsTree latest root.\n @return The latest ClaimsTree root"
+ },
+ "functionSelector": "6e2fe66c",
+ "id": 1910,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getClaimsTreeRoot",
+ "nameLocation": "9026:17:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1899,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1898,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "9057:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1910,
+ "src": "9044:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1897,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1896,
+ "name": "Data",
+ "nameLocations": [
+ "9044:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "9044:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "9044:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9043:19:8"
+ },
+ "returnParameters": {
+ "id": 1902,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1901,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1910,
+ "src": "9086:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1900,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9086:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9085:9:8"
+ },
+ "scope": 2217,
+ "src": "9017:133:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1935,
+ "nodeType": "Block",
+ "src": "9601:196:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1928,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1916,
+ "src": "9697:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 1927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9689:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1926,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9689:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1929,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9689:24:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1930,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1914,
+ "src": "9731:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1931,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9736:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "9731:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1932,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9761:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "9731:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1922,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1914,
+ "src": "9630:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1923,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9635:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "9630:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1924,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9641:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "9630:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1925,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9657:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "9630:41:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9630:160:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1921,
+ "id": 1934,
+ "nodeType": "Return",
+ "src": "9611:179:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1911,
+ "nodeType": "StructuredDocumentation",
+ "src": "9156:303:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\nNote that proof is taken for the latest published revocation tree root.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "7d0aba4f",
+ "id": 1936,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProof",
+ "nameLocation": "9473:18:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1917,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1914,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "9514:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1936,
+ "src": "9501:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1913,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1912,
+ "name": "Data",
+ "nameLocations": [
+ "9501:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "9501:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "9501:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1916,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "9535:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1936,
+ "src": "9528:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1915,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "9528:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9491:65:8"
+ },
+ "returnParameters": {
+ "id": 1921,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1920,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1936,
+ "src": "9580:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1919,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1918,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "9580:6:8",
+ "9587:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "9580:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "9580:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9579:21:8"
+ },
+ "scope": 2217,
+ "src": "9464:333:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1978,
+ "nodeType": "Block",
+ "src": "10311:515:8",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1957,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1942,
+ "src": "10409:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 1956,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10401:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1955,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10401:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1958,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10401:24:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1959,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10443:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1960,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10448:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "10443:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1961,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10473:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "10443:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1951,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10342:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1952,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10347:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "10342:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1953,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10353:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "10342:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1954,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10369:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "10342:41:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 1962,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10342:160:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1964,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10551:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1965,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10556:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "10551:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1966,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10606:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1967,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10611:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "10606:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1968,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10636:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "10606:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1969,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10681:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1970,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10686:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "10681:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1971,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10711:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "10681:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 1972,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "10755:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10760:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "10755:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 1974,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10785:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "10755:39:8",
+ "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"
+ }
+ ],
+ "id": 1963,
+ "name": "StateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1400,
+ "src": "10516:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$",
+ "typeString": "type(struct IdentityLib.StateInfo storage pointer)"
+ }
+ },
+ "id": 1975,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "10544:5:8",
+ "10594:10:8",
+ "10664:15:8",
+ "10744:9:8"
+ ],
+ "names": [
+ "state",
+ "claimsRoot",
+ "revocationsRoot",
+ "rootsRoot"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "10516:293:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo memory"
+ }
+ }
+ ],
+ "id": 1976,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10328:491:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 1950,
+ "id": 1977,
+ "nodeType": "Return",
+ "src": "10321:498:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1937,
+ "nodeType": "StructuredDocumentation",
+ "src": "9803:335:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\nNote that proof is taken for the latest published revocation tree root.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the claim and state info."
+ },
+ "functionSelector": "f8b80268",
+ "id": 1979,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProofWithStateInfo",
+ "nameLocation": "10152:31:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1943,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1940,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "10206:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1979,
+ "src": "10193:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1939,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1938,
+ "name": "Data",
+ "nameLocations": [
+ "10193:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "10193:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "10193:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1942,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "10227:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1979,
+ "src": "10220:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1941,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "10220:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10183:65:8"
+ },
+ "returnParameters": {
+ "id": 1950,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1946,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1979,
+ "src": "10272:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1945,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1944,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "10272:6:8",
+ "10279:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "10272:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "10272:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1949,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1979,
+ "src": "10293:16:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 1948,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1947,
+ "name": "StateInfo",
+ "nameLocations": [
+ "10293:9:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "10293:9:8"
+ },
+ "referencedDeclaration": 1400,
+ "src": "10293:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10271:39:8"
+ },
+ "scope": 2217,
+ "src": "10143:683:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2004,
+ "nodeType": "Block",
+ "src": "11281:97:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1999,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1985,
+ "src": "11348:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 1998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11340:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1997,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11340:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11340:24:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2001,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "11366:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 1993,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1983,
+ "src": "11298:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 1994,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11303:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "11298:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 1995,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11309:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "11298:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 1996,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11325:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "11298:41:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 2002,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11298:73:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 1992,
+ "id": 2003,
+ "nodeType": "Return",
+ "src": "11291:80:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1980,
+ "nodeType": "StructuredDocumentation",
+ "src": "10832:279:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n @param revocationNonce - revocation nonce\n @param root - root of the tree\n @return The RevocationsTree inclusion or non-inclusion proof for the claim"
+ },
+ "functionSelector": "16579a36",
+ "id": 2005,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationProofByRoot",
+ "nameLocation": "11125:24:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1988,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1983,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "11172:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2005,
+ "src": "11159:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 1982,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1981,
+ "name": "Data",
+ "nameLocations": [
+ "11159:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "11159:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "11159:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1985,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "11193:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2005,
+ "src": "11186:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 1984,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "11186:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1987,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "11226:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2005,
+ "src": "11218:12:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1986,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11218:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11149:87:8"
+ },
+ "returnParameters": {
+ "id": 1992,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1991,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2005,
+ "src": "11260:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 1990,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1989,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "11260:6:8",
+ "11267:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "11260:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "11260:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11259:21:8"
+ },
+ "scope": 2217,
+ "src": "11116:262:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2020,
+ "nodeType": "Block",
+ "src": "11580:60:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 2014,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2009,
+ "src": "11597:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2015,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11602:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "11597:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11608:15:8",
+ "memberName": "revocationsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1378,
+ "src": "11597:26:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 2017,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11624:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "11597:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 2018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11597:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2013,
+ "id": 2019,
+ "nodeType": "Return",
+ "src": "11590:43:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2006,
+ "nodeType": "StructuredDocumentation",
+ "src": "11384:108:8",
+ "text": " @dev Retrieve RevocationsTree latest root.\n @return The latest RevocationsTree root"
+ },
+ "functionSelector": "765c2c61",
+ "id": 2021,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRevocationsTreeRoot",
+ "nameLocation": "11506:22:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2010,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2009,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "11542:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2021,
+ "src": "11529:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2008,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2007,
+ "name": "Data",
+ "nameLocations": [
+ "11529:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "11529:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "11529:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11528:19:8"
+ },
+ "returnParameters": {
+ "id": 2013,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2012,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2021,
+ "src": "11571:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2011,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11571:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11570:9:8"
+ },
+ "scope": 2217,
+ "src": "11497:143:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2043,
+ "nodeType": "Block",
+ "src": "12077:173:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2037,
+ "name": "rootsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2027,
+ "src": "12159:13:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 2038,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2025,
+ "src": "12190:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2039,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12195:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "12190:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2040,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12220:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "12190:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 2033,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2025,
+ "src": "12106:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2034,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12111:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "12106:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 2035,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12117:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "12106:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 2036,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12127:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "12106:35:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 2041,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12106:137:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 2032,
+ "id": 2042,
+ "nodeType": "Return",
+ "src": "12087:156:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2022,
+ "nodeType": "StructuredDocumentation",
+ "src": "11646:296:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\nNote that proof is taken for the latest published roots tree root.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root"
+ },
+ "functionSelector": "97ac5391",
+ "id": 2044,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProof",
+ "nameLocation": "11956:12:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2028,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2025,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "11991:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2044,
+ "src": "11978:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2024,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2023,
+ "name": "Data",
+ "nameLocations": [
+ "11978:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "11978:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "11978:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2027,
+ "mutability": "mutable",
+ "name": "rootsTreeRoot",
+ "nameLocation": "12013:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2044,
+ "src": "12005:21:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2026,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12005:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11968:64:8"
+ },
+ "returnParameters": {
+ "id": 2032,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2031,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2044,
+ "src": "12056:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 2030,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2029,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "12056:6:8",
+ "12063:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "12056:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "12056:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12055:21:8"
+ },
+ "scope": 2217,
+ "src": "11947:303:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2083,
+ "nodeType": "Block",
+ "src": "12749:492:8",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "id": 2063,
+ "name": "rootsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2050,
+ "src": "12833:13:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 2064,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "12864:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2065,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12869:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "12864:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2066,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12894:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "12864:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 2059,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "12780:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2060,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12785:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "12780:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 2061,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12791:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "12780:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 2062,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12801:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "12780:35:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 2067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12780:137:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 2069,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "12966:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2070,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12971:20:8",
+ "memberName": "latestPublishedState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1350,
+ "src": "12966:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 2071,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "13021:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2072,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13026:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "13021:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2073,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13051:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "13021:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 2074,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "13096:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2075,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13101:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "13096:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2076,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13126:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "13096:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 2077,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2048,
+ "src": "13170:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2078,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13175:24:8",
+ "memberName": "latestPublishedTreeRoots",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1366,
+ "src": "13170:29:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2079,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13200:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "13170:39:8",
+ "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"
+ }
+ ],
+ "id": 2068,
+ "name": "StateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1400,
+ "src": "12931:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$",
+ "typeString": "type(struct IdentityLib.StateInfo storage pointer)"
+ }
+ },
+ "id": 2080,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "12959:5:8",
+ "13009:10:8",
+ "13079:15:8",
+ "13159:9:8"
+ ],
+ "names": [
+ "state",
+ "claimsRoot",
+ "revocationsRoot",
+ "rootsRoot"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "12931:293:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo memory"
+ }
+ }
+ ],
+ "id": 2081,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "12766:468:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$",
+ "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)"
+ }
+ },
+ "functionReturnParameters": 2058,
+ "id": 2082,
+ "nodeType": "Return",
+ "src": "12759:475:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2045,
+ "nodeType": "StructuredDocumentation",
+ "src": "12256:327:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot and state info.\nNote that proof is taken for the latest published roots tree root.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root and state info."
+ },
+ "functionSelector": "a3018d79",
+ "id": 2084,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProofWithStateInfo",
+ "nameLocation": "12597:25:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2051,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2048,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "12645:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2084,
+ "src": "12632:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2047,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2046,
+ "name": "Data",
+ "nameLocations": [
+ "12632:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "12632:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "12632:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2050,
+ "mutability": "mutable",
+ "name": "rootsTreeRoot",
+ "nameLocation": "12667:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2084,
+ "src": "12659:21:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2049,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12659:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12622:64:8"
+ },
+ "returnParameters": {
+ "id": 2058,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2054,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2084,
+ "src": "12710:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 2053,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2052,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "12710:6:8",
+ "12717:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "12710:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "12710:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2057,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2084,
+ "src": "12731:16:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ },
+ "typeName": {
+ "id": 2056,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2055,
+ "name": "StateInfo",
+ "nameLocations": [
+ "12731:9:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "12731:9:8"
+ },
+ "referencedDeclaration": 1400,
+ "src": "12731:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr",
+ "typeString": "struct IdentityLib.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12709:39:8"
+ },
+ "scope": 2217,
+ "src": "12588:653:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2106,
+ "nodeType": "Block",
+ "src": "13691:81:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2102,
+ "name": "claimsTreeRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2090,
+ "src": "13744:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2103,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2092,
+ "src": "13760:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 2098,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2088,
+ "src": "13708:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2099,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13713:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "13708:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 2100,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13719:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "13708:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 2101,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13729:14:8",
+ "memberName": "getProofByRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3424,
+ "src": "13708:35:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 2104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13708:57:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 2097,
+ "id": 2105,
+ "nodeType": "Return",
+ "src": "13701:64:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2085,
+ "nodeType": "StructuredDocumentation",
+ "src": "13247:280:8",
+ "text": " @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n @param claimsTreeRoot - claims tree root\n @param root - root of the tree\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root"
+ },
+ "functionSelector": "d55da6a3",
+ "id": 2107,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootProofByRoot",
+ "nameLocation": "13541:18:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2093,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2088,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "13582:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2107,
+ "src": "13569:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2087,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2086,
+ "name": "Data",
+ "nameLocations": [
+ "13569:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "13569:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "13569:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2090,
+ "mutability": "mutable",
+ "name": "claimsTreeRoot",
+ "nameLocation": "13604:14:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2107,
+ "src": "13596:22:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2089,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13596:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2092,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "13636:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2107,
+ "src": "13628:12:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2091,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13628:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13559:87:8"
+ },
+ "returnParameters": {
+ "id": 2097,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2096,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2107,
+ "src": "13670:19:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 2095,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2094,
+ "name": "SmtLib.Proof",
+ "nameLocations": [
+ "13670:6:8",
+ "13677:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "13670:12:8"
+ },
+ "referencedDeclaration": 2979,
+ "src": "13670:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13669:21:8"
+ },
+ "scope": 2217,
+ "src": "13532:240:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2122,
+ "nodeType": "Block",
+ "src": "13956:54:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 2116,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2111,
+ "src": "13973:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2117,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13978:5:8",
+ "memberName": "trees",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1363,
+ "src": "13973:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Trees_$1382_storage",
+ "typeString": "struct IdentityLib.Trees storage ref"
+ }
+ },
+ "id": 2118,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13984:9:8",
+ "memberName": "rootsTree",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1381,
+ "src": "13973:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage",
+ "typeString": "struct SmtLib.Data storage ref"
+ }
+ },
+ "id": 2119,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13994:7:8",
+ "memberName": "getRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3506,
+ "src": "13973:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 2120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13973:30:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2115,
+ "id": 2121,
+ "nodeType": "Return",
+ "src": "13966:37:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2108,
+ "nodeType": "StructuredDocumentation",
+ "src": "13778:96:8",
+ "text": " @dev Retrieve RootsTree latest root.\n @return The latest RootsTree root"
+ },
+ "functionSelector": "1e75e7f3",
+ "id": 2123,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootsTreeRoot",
+ "nameLocation": "13888:16:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2112,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2111,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "13918:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "13905:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2110,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2109,
+ "name": "Data",
+ "nameLocations": [
+ "13905:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "13905:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "13905:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13904:19:8"
+ },
+ "returnParameters": {
+ "id": 2115,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2114,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "13947:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2113,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13947:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13946:9:8"
+ },
+ "scope": 2217,
+ "src": "13879:131:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2170,
+ "nodeType": "Block",
+ "src": "14257:304:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2158,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2136,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2127,
+ "src": "14288:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2137,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14293:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14288:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2139,
+ "indexExpression": {
+ "id": 2138,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2129,
+ "src": "14306:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14288:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2140,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14313:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "14288:35:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2141,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14327:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14288:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2149,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2143,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2127,
+ "src": "14348:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2144,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14353:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14348:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2146,
+ "indexExpression": {
+ "id": 2145,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2129,
+ "src": "14366:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14348:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2147,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14373:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "14348:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14392:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14348:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "14288:105:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2151,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2127,
+ "src": "14413:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2152,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14418:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14413:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2154,
+ "indexExpression": {
+ "id": 2153,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2129,
+ "src": "14431:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14413:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2155,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14438:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "14413:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14451:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14413:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "14288:164:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "526f6f747320666f72207468697320737461746520616c7265616479206578697374",
+ "id": 2159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14466:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7",
+ "typeString": "literal_string \"Roots for this state already exist\""
+ },
+ "value": "Roots for this state already exist"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7",
+ "typeString": "literal_string \"Roots for this state already exist\""
+ }
+ ],
+ "id": 2135,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14267:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14267:245:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2161,
+ "nodeType": "ExpressionStatement",
+ "src": "14267:245:8"
+ },
+ {
+ "expression": {
+ "id": 2168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 2162,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2127,
+ "src": "14522:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2165,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14527:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14522:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2166,
+ "indexExpression": {
+ "id": 2164,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2129,
+ "src": "14540:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "14522:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 2167,
+ "name": "roots",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2132,
+ "src": "14549:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots memory"
+ }
+ },
+ "src": "14522:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2169,
+ "nodeType": "ExpressionStatement",
+ "src": "14522:32:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2124,
+ "nodeType": "StructuredDocumentation",
+ "src": "14016:151:8",
+ "text": " @dev write roots to history by state\n @param self identity\n @param state identity state\n @param roots set of roots"
+ },
+ "id": 2171,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "writeHistory",
+ "nameLocation": "14181:12:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2133,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2127,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14207:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2171,
+ "src": "14194:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2126,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2125,
+ "name": "Data",
+ "nameLocations": [
+ "14194:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "14194:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "14194:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2129,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "14221:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2171,
+ "src": "14213:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2128,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14213:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2132,
+ "mutability": "mutable",
+ "name": "roots",
+ "nameLocation": "14241:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2171,
+ "src": "14228:18:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ },
+ "typeName": {
+ "id": 2131,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2130,
+ "name": "Roots",
+ "nameLocations": [
+ "14228:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "14228:5:8"
+ },
+ "referencedDeclaration": 1390,
+ "src": "14228:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14193:54:8"
+ },
+ "returnParameters": {
+ "id": 2134,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "14257:0:8"
+ },
+ "scope": 2217,
+ "src": "14172:389:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2215,
+ "nodeType": "Block",
+ "src": "14868:303:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2206,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2198,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2184,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2175,
+ "src": "14899:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2185,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14904:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14899:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2187,
+ "indexExpression": {
+ "id": 2186,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2177,
+ "src": "14917:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14899:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2188,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14924:10:8",
+ "memberName": "claimsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1385,
+ "src": "14899:35:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2189,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14938:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14899:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2197,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2191,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2175,
+ "src": "14959:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2192,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14964:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "14959:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2194,
+ "indexExpression": {
+ "id": 2193,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2177,
+ "src": "14977:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14959:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2195,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14984:15:8",
+ "memberName": "revocationsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1387,
+ "src": "14959:40:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2196,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15003:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14959:45:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "14899:105:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2199,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2175,
+ "src": "15024:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2200,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15029:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "15024:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2202,
+ "indexExpression": {
+ "id": 2201,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2177,
+ "src": "15042:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "15024:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "id": 2203,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15049:9:8",
+ "memberName": "rootsRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1389,
+ "src": "15024:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15062:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "15024:39:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "14899:164:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "526f6f747320666f72207468697320737461746520646f65736e2774206578697374",
+ "id": 2207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15077:36:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5",
+ "typeString": "literal_string \"Roots for this state doesn't exist\""
+ },
+ "value": "Roots for this state doesn't exist"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5",
+ "typeString": "literal_string \"Roots for this state doesn't exist\""
+ }
+ ],
+ "id": 2183,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14878:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14878:245:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2209,
+ "nodeType": "ExpressionStatement",
+ "src": "14878:245:8"
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 2210,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2175,
+ "src": "15140:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data storage pointer"
+ }
+ },
+ "id": 2211,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15145:12:8",
+ "memberName": "rootsByState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1360,
+ "src": "15140:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$",
+ "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)"
+ }
+ },
+ "id": 2213,
+ "indexExpression": {
+ "id": 2212,
+ "name": "state",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2177,
+ "src": "15158:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "15140:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage",
+ "typeString": "struct IdentityLib.Roots storage ref"
+ }
+ },
+ "functionReturnParameters": 2182,
+ "id": 2214,
+ "nodeType": "Return",
+ "src": "15133:31:8"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2172,
+ "nodeType": "StructuredDocumentation",
+ "src": "14567:178:8",
+ "text": " @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n by state\n @param state identity state\n @return set of roots"
+ },
+ "functionSelector": "0b1a9cd3",
+ "id": 2216,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootsByState",
+ "nameLocation": "14759:15:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2178,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2175,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14797:4:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2216,
+ "src": "14784:17:8",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ },
+ "typeName": {
+ "id": 2174,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2173,
+ "name": "Data",
+ "nameLocations": [
+ "14784:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "14784:4:8"
+ },
+ "referencedDeclaration": 1371,
+ "src": "14784:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2177,
+ "mutability": "mutable",
+ "name": "state",
+ "nameLocation": "14819:5:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2216,
+ "src": "14811:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2176,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14811:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14774:56:8"
+ },
+ "returnParameters": {
+ "id": 2182,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2181,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2216,
+ "src": "14854:12:8",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ },
+ "typeName": {
+ "id": 2180,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2179,
+ "name": "Roots",
+ "nameLocations": [
+ "14854:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1390,
+ "src": "14854:5:8"
+ },
+ "referencedDeclaration": 1390,
+ "src": "14854:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr",
+ "typeString": "struct IdentityLib.Roots"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14853:14:8"
+ },
+ "scope": 2217,
+ "src": "14750:421:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2218,
+ "src": "335:14838:8",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:15138:8"
+ },
+ "id": 8
+ },
+ "@iden3/contracts/lib/Poseidon.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/Poseidon.sol",
+ "exportedSymbols": {
+ "PoseidonFacade": [
+ 2514
+ ],
+ "PoseidonUnit1L": [
+ 2230
+ ],
+ "PoseidonUnit2L": [
+ 2241
+ ],
+ "PoseidonUnit3L": [
+ 2252
+ ],
+ "PoseidonUnit4L": [
+ 2263
+ ],
+ "PoseidonUnit5L": [
+ 2274
+ ],
+ "PoseidonUnit6L": [
+ 2285
+ ],
+ "SpongePoseidon": [
+ 2409
+ ]
+ },
+ "id": 2515,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2219,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:9"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit1L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2230,
+ "linearizedBaseContracts": [
+ 2230
+ ],
+ "name": "PoseidonUnit1L",
+ "nameLocation": "69:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2228,
+ "nodeType": "Block",
+ "src": "159:2:9",
+ "statements": []
+ },
+ "functionSelector": "1caab9a7",
+ "id": 2229,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "99:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2224,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2223,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2229,
+ "src": "108:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr",
+ "typeString": "uint256[1]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2220,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "108:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2222,
+ "length": {
+ "hexValue": "31",
+ "id": 2221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "116:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "108:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr",
+ "typeString": "uint256[1]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "107:21:9"
+ },
+ "returnParameters": {
+ "id": 2227,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2226,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2229,
+ "src": "150:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2225,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "150:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "149:9:9"
+ },
+ "scope": 2230,
+ "src": "90:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "61:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit2L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2241,
+ "linearizedBaseContracts": [
+ 2241
+ ],
+ "name": "PoseidonUnit2L",
+ "nameLocation": "173:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2239,
+ "nodeType": "Block",
+ "src": "263:2:9",
+ "statements": []
+ },
+ "functionSelector": "29a5f2f6",
+ "id": 2240,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "203:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2235,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2234,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2240,
+ "src": "212:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2231,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "212:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2233,
+ "length": {
+ "hexValue": "32",
+ "id": 2232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "220:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "212:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "211:21:9"
+ },
+ "returnParameters": {
+ "id": 2238,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2237,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2240,
+ "src": "254:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2236,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "254:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "253:9:9"
+ },
+ "scope": 2241,
+ "src": "194:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "165:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit3L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2252,
+ "linearizedBaseContracts": [
+ 2252
+ ],
+ "name": "PoseidonUnit3L",
+ "nameLocation": "277:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2250,
+ "nodeType": "Block",
+ "src": "367:2:9",
+ "statements": []
+ },
+ "functionSelector": "25cc70e8",
+ "id": 2251,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "307:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2245,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2251,
+ "src": "316:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr",
+ "typeString": "uint256[3]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2242,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "316:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2244,
+ "length": {
+ "hexValue": "33",
+ "id": 2243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "324:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "316:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr",
+ "typeString": "uint256[3]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "315:21:9"
+ },
+ "returnParameters": {
+ "id": 2249,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2248,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2251,
+ "src": "358:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2247,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "358:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "357:9:9"
+ },
+ "scope": 2252,
+ "src": "298:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "269:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit4L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2263,
+ "linearizedBaseContracts": [
+ 2263
+ ],
+ "name": "PoseidonUnit4L",
+ "nameLocation": "381:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2261,
+ "nodeType": "Block",
+ "src": "471:2:9",
+ "statements": []
+ },
+ "functionSelector": "248f6677",
+ "id": 2262,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "411:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2257,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2256,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2262,
+ "src": "420:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
+ "typeString": "uint256[4]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2253,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "420:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2255,
+ "length": {
+ "hexValue": "34",
+ "id": 2254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "428:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "420:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
+ "typeString": "uint256[4]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "419:21:9"
+ },
+ "returnParameters": {
+ "id": 2260,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2259,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2262,
+ "src": "462:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2258,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "462:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "461:9:9"
+ },
+ "scope": 2263,
+ "src": "402:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "373:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit5L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2274,
+ "linearizedBaseContracts": [
+ 2274
+ ],
+ "name": "PoseidonUnit5L",
+ "nameLocation": "485:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2272,
+ "nodeType": "Block",
+ "src": "575:2:9",
+ "statements": []
+ },
+ "functionSelector": "4937a258",
+ "id": 2273,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "515:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2268,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2267,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2273,
+ "src": "524:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr",
+ "typeString": "uint256[5]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2264,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "524:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2266,
+ "length": {
+ "hexValue": "35",
+ "id": 2265,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "532:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "524:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
+ "typeString": "uint256[5]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "523:21:9"
+ },
+ "returnParameters": {
+ "id": 2271,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2270,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2273,
+ "src": "566:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2269,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "566:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "565:9:9"
+ },
+ "scope": 2274,
+ "src": "506:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "477:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonUnit6L",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2285,
+ "linearizedBaseContracts": [
+ 2285
+ ],
+ "name": "PoseidonUnit6L",
+ "nameLocation": "589:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2283,
+ "nodeType": "Block",
+ "src": "679:2:9",
+ "statements": []
+ },
+ "functionSelector": "f5b4a788",
+ "id": 2284,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon",
+ "nameLocation": "619:8:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2279,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2278,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2284,
+ "src": "628:19:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr",
+ "typeString": "uint256[6]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2275,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "628:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2277,
+ "length": {
+ "hexValue": "36",
+ "id": 2276,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "636:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "628:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr",
+ "typeString": "uint256[6]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "627:21:9"
+ },
+ "returnParameters": {
+ "id": 2282,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2281,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2284,
+ "src": "670:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2280,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "670:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "669:9:9"
+ },
+ "scope": 2285,
+ "src": "610:71:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "581:102:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "SpongePoseidon",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2409,
+ "linearizedBaseContracts": [
+ 2409
+ ],
+ "name": "SpongePoseidon",
+ "nameLocation": "693:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 2288,
+ "mutability": "constant",
+ "name": "BATCH_SIZE",
+ "nameLocation": "739:10:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2409,
+ "src": "714:39:9",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 2286,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "714:6:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "value": {
+ "hexValue": "36",
+ "id": 2287,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "752:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2407,
+ "nodeType": "Block",
+ "src": "829:783:9",
+ "statements": [
+ {
+ "assignments": [
+ 2301
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2301,
+ "mutability": "mutable",
+ "name": "frame",
+ "nameLocation": "866:5:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2407,
+ "src": "839:32:9",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2299,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "839:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2300,
+ "length": {
+ "id": 2298,
+ "name": "BATCH_SIZE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2288,
+ "src": "847:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "839:19:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr",
+ "typeString": "uint256[6]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2312,
+ "initialValue": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2304,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "883:1:9",
+ "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": 2303,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "875:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2302,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "875:7:9",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2305,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "875:10:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2306,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "887:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2307,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "890:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2308,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "893:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2309,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "896:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2310,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "899:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 2311,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "874:27:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "839:62:9"
+ },
+ {
+ "assignments": [
+ 2314
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2314,
+ "mutability": "mutable",
+ "name": "dirty",
+ "nameLocation": "916:5:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2407,
+ "src": "911:10:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2313,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "911:4:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2316,
+ "initialValue": {
+ "hexValue": "66616c7365",
+ "id": 2315,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "924:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "911:18:9"
+ },
+ {
+ "assignments": [
+ 2318
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2318,
+ "mutability": "mutable",
+ "name": "fullHash",
+ "nameLocation": "947:8:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2407,
+ "src": "939:16:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2317,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "939:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2320,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2319,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "958:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "939:20:9"
+ },
+ {
+ "assignments": [
+ 2322
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2322,
+ "mutability": "mutable",
+ "name": "k",
+ "nameLocation": "976:1:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2407,
+ "src": "969:8:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 2321,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "969:6:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2324,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "980:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "969:12:9"
+ },
+ {
+ "body": {
+ "id": 2393,
+ "nodeType": "Block",
+ "src": "1034:369:9",
+ "statements": [
+ {
+ "expression": {
+ "id": 2338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2336,
+ "name": "dirty",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2314,
+ "src": "1048:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 2337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1056:4:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "1048:12:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2339,
+ "nodeType": "ExpressionStatement",
+ "src": "1048:12:9"
+ },
+ {
+ "expression": {
+ "id": 2346,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 2340,
+ "name": "frame",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2301,
+ "src": "1074:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "id": 2342,
+ "indexExpression": {
+ "id": 2341,
+ "name": "k",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2322,
+ "src": "1080:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1074:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 2343,
+ "name": "values",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2291,
+ "src": "1085:6:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 2345,
+ "indexExpression": {
+ "id": 2344,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2326,
+ "src": "1092:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1085:9:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1074:20:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2347,
+ "nodeType": "ExpressionStatement",
+ "src": "1074:20:9"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2348,
+ "name": "k",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2322,
+ "src": "1112:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2351,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2349,
+ "name": "BATCH_SIZE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2288,
+ "src": "1117:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 2350,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1130:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "1117:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "1112:19:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2391,
+ "nodeType": "Block",
+ "src": "1357:36:9",
+ "statements": [
+ {
+ "expression": {
+ "id": 2389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "1375:3:9",
+ "subExpression": {
+ "id": 2388,
+ "name": "k",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2322,
+ "src": "1375:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2390,
+ "nodeType": "ExpressionStatement",
+ "src": "1375:3:9"
+ }
+ ]
+ },
+ "id": 2392,
+ "nodeType": "IfStatement",
+ "src": "1108:285:9",
+ "trueBody": {
+ "id": 2387,
+ "nodeType": "Block",
+ "src": "1133:218:9",
+ "statements": [
+ {
+ "expression": {
+ "id": 2358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2353,
+ "name": "fullHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2318,
+ "src": "1151:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 2356,
+ "name": "frame",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2301,
+ "src": "1186:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ ],
+ "expression": {
+ "id": 2354,
+ "name": "PoseidonUnit6L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2285,
+ "src": "1162:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$",
+ "typeString": "type(library PoseidonUnit6L)"
+ }
+ },
+ "id": 2355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1177:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2284,
+ "src": "1162:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[6] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1162:30:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1151:41:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2359,
+ "nodeType": "ExpressionStatement",
+ "src": "1151:41:9"
+ },
+ {
+ "expression": {
+ "id": 2362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2360,
+ "name": "dirty",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2314,
+ "src": "1210:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 2361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1218:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "1210:13:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2363,
+ "nodeType": "ExpressionStatement",
+ "src": "1210:13:9"
+ },
+ {
+ "expression": {
+ "id": 2375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2364,
+ "name": "frame",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2301,
+ "src": "1241:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1258:1:9",
+ "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": 2366,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1250:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2365,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1250:7:9",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1250:10:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1262:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1265:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1268:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1271:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 2373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1274:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 2374,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1249:27:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "src": "1241:35:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "id": 2376,
+ "nodeType": "ExpressionStatement",
+ "src": "1241:35:9"
+ },
+ {
+ "expression": {
+ "id": 2381,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 2377,
+ "name": "frame",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2301,
+ "src": "1294:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ },
+ "id": 2379,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 2378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1300:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1294:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 2380,
+ "name": "fullHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2318,
+ "src": "1305:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1294:19:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2382,
+ "nodeType": "ExpressionStatement",
+ "src": "1294:19:9"
+ },
+ {
+ "expression": {
+ "id": 2385,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2383,
+ "name": "k",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2322,
+ "src": "1331:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 2384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1335:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "1331:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2386,
+ "nodeType": "ExpressionStatement",
+ "src": "1331:5:9"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2332,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2329,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2326,
+ "src": "1010:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 2330,
+ "name": "values",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2291,
+ "src": "1014:6:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 2331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1021:6:9",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "1014:13:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1010:17:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2394,
+ "initializationExpression": {
+ "assignments": [
+ 2326
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2326,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "1003:1:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2394,
+ "src": "996:8:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 2325,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "996:6:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2328,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2327,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1007:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "996:12:9"
+ },
+ "isSimpleCounterLoop": false,
+ "loopExpression": {
+ "expression": {
+ "id": 2334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "1029:3:9",
+ "subExpression": {
+ "id": 2333,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2326,
+ "src": "1029:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2335,
+ "nodeType": "ExpressionStatement",
+ "src": "1029:3:9"
+ },
+ "nodeType": "ForStatement",
+ "src": "991:412:9"
+ },
+ {
+ "condition": {
+ "id": 2395,
+ "name": "dirty",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2314,
+ "src": "1416:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2404,
+ "nodeType": "IfStatement",
+ "src": "1412:169:9",
+ "trueBody": {
+ "id": 2403,
+ "nodeType": "Block",
+ "src": "1423:158:9",
+ "statements": [
+ {
+ "expression": {
+ "id": 2401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2396,
+ "name": "fullHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2318,
+ "src": "1529:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 2399,
+ "name": "frame",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2301,
+ "src": "1564:5:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr",
+ "typeString": "uint256[6] memory"
+ }
+ ],
+ "expression": {
+ "id": 2397,
+ "name": "PoseidonUnit6L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2285,
+ "src": "1540:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$",
+ "typeString": "type(library PoseidonUnit6L)"
+ }
+ },
+ "id": 2398,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1555:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2284,
+ "src": "1540:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[6] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1540:30:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1529:41:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2402,
+ "nodeType": "ExpressionStatement",
+ "src": "1529:41:9"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 2405,
+ "name": "fullHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2318,
+ "src": "1597:8:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2295,
+ "id": 2406,
+ "nodeType": "Return",
+ "src": "1590:15:9"
+ }
+ ]
+ },
+ "functionSelector": "40ec6e49",
+ "id": 2408,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "hash",
+ "nameLocation": "769:4:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2292,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2291,
+ "mutability": "mutable",
+ "name": "values",
+ "nameLocation": "791:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2408,
+ "src": "774:23:9",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2289,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "774:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2290,
+ "nodeType": "ArrayTypeName",
+ "src": "774:9:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "773:25:9"
+ },
+ "returnParameters": {
+ "id": 2295,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2294,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2408,
+ "src": "820:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2293,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "820:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "819:9:9"
+ },
+ "scope": 2409,
+ "src": "760:852:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "685:929:9",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoseidonFacade",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2514,
+ "linearizedBaseContracts": [
+ 2514
+ ],
+ "name": "PoseidonFacade",
+ "nameLocation": "1624:14:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2423,
+ "nodeType": "Block",
+ "src": "1718:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2420,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2413,
+ "src": "1759:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr",
+ "typeString": "uint256[1] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr",
+ "typeString": "uint256[1] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2418,
+ "name": "PoseidonUnit1L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2230,
+ "src": "1735:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit1L_$2230_$",
+ "typeString": "type(library PoseidonUnit1L)"
+ }
+ },
+ "id": 2419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1750:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2229,
+ "src": "1735:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$1_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[1] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2421,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1735:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2417,
+ "id": 2422,
+ "nodeType": "Return",
+ "src": "1728:34:9"
+ }
+ ]
+ },
+ "functionSelector": "8844c1a6",
+ "id": 2424,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon1",
+ "nameLocation": "1654:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2414,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2413,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "1684:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2424,
+ "src": "1664:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr",
+ "typeString": "uint256[1]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2410,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1664:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2412,
+ "length": {
+ "hexValue": "31",
+ "id": 2411,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1672:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1664:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr",
+ "typeString": "uint256[1]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1663:24:9"
+ },
+ "returnParameters": {
+ "id": 2417,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2416,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2424,
+ "src": "1709:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2415,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1709:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1708:9:9"
+ },
+ "scope": 2514,
+ "src": "1645:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2438,
+ "nodeType": "Block",
+ "src": "1848:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2435,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2428,
+ "src": "1889:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2433,
+ "name": "PoseidonUnit2L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2241,
+ "src": "1865:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit2L_$2241_$",
+ "typeString": "type(library PoseidonUnit2L)"
+ }
+ },
+ "id": 2434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1880:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2240,
+ "src": "1865:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[2] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2436,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1865:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2432,
+ "id": 2437,
+ "nodeType": "Return",
+ "src": "1858:34:9"
+ }
+ ]
+ },
+ "functionSelector": "47632628",
+ "id": 2439,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon2",
+ "nameLocation": "1784:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2429,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2428,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "1814:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2439,
+ "src": "1794:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2425,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1794:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2427,
+ "length": {
+ "hexValue": "32",
+ "id": 2426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1802:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1794:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1793:24:9"
+ },
+ "returnParameters": {
+ "id": 2432,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2431,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2439,
+ "src": "1839:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2430,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1839:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1838:9:9"
+ },
+ "scope": 2514,
+ "src": "1775:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2453,
+ "nodeType": "Block",
+ "src": "1978:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2450,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2443,
+ "src": "2019:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr",
+ "typeString": "uint256[3] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr",
+ "typeString": "uint256[3] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2448,
+ "name": "PoseidonUnit3L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2252,
+ "src": "1995:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$",
+ "typeString": "type(library PoseidonUnit3L)"
+ }
+ },
+ "id": 2449,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2010:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2251,
+ "src": "1995:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[3] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1995:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2447,
+ "id": 2452,
+ "nodeType": "Return",
+ "src": "1988:34:9"
+ }
+ ]
+ },
+ "functionSelector": "27babae2",
+ "id": 2454,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon3",
+ "nameLocation": "1914:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2444,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2443,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "1944:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2454,
+ "src": "1924:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr",
+ "typeString": "uint256[3]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2440,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1924:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2442,
+ "length": {
+ "hexValue": "33",
+ "id": 2441,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1932:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1924:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr",
+ "typeString": "uint256[3]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1923:24:9"
+ },
+ "returnParameters": {
+ "id": 2447,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2446,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2454,
+ "src": "1969:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2445,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1969:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1968:9:9"
+ },
+ "scope": 2514,
+ "src": "1905:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2468,
+ "nodeType": "Block",
+ "src": "2108:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2465,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2458,
+ "src": "2149:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
+ "typeString": "uint256[4] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
+ "typeString": "uint256[4] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2463,
+ "name": "PoseidonUnit4L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2263,
+ "src": "2125:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$",
+ "typeString": "type(library PoseidonUnit4L)"
+ }
+ },
+ "id": 2464,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2140:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2262,
+ "src": "2125:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[4] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2125:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2462,
+ "id": 2467,
+ "nodeType": "Return",
+ "src": "2118:34:9"
+ }
+ ]
+ },
+ "functionSelector": "ac490f26",
+ "id": 2469,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon4",
+ "nameLocation": "2044:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2459,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2458,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "2074:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2469,
+ "src": "2054:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
+ "typeString": "uint256[4]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2455,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2054:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2457,
+ "length": {
+ "hexValue": "34",
+ "id": 2456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2062:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2054:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
+ "typeString": "uint256[4]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2053:24:9"
+ },
+ "returnParameters": {
+ "id": 2462,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2461,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2469,
+ "src": "2099:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2460,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2099:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2098:9:9"
+ },
+ "scope": 2514,
+ "src": "2035:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2483,
+ "nodeType": "Block",
+ "src": "2238:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2480,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2473,
+ "src": "2279:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr",
+ "typeString": "uint256[5] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr",
+ "typeString": "uint256[5] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2478,
+ "name": "PoseidonUnit5L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2274,
+ "src": "2255:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit5L_$2274_$",
+ "typeString": "type(library PoseidonUnit5L)"
+ }
+ },
+ "id": 2479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2270:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2273,
+ "src": "2255:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[5] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2481,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2255:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2477,
+ "id": 2482,
+ "nodeType": "Return",
+ "src": "2248:34:9"
+ }
+ ]
+ },
+ "functionSelector": "c2720d54",
+ "id": 2484,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon5",
+ "nameLocation": "2174:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2474,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2473,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "2204:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2484,
+ "src": "2184:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr",
+ "typeString": "uint256[5]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2470,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2184:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2472,
+ "length": {
+ "hexValue": "35",
+ "id": 2471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2192:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2184:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
+ "typeString": "uint256[5]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2183:24:9"
+ },
+ "returnParameters": {
+ "id": 2477,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2476,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2484,
+ "src": "2229:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2475,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2229:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2228:9:9"
+ },
+ "scope": 2514,
+ "src": "2165:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2498,
+ "nodeType": "Block",
+ "src": "2368:51:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2495,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2488,
+ "src": "2409:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr",
+ "typeString": "uint256[6] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr",
+ "typeString": "uint256[6] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2493,
+ "name": "PoseidonUnit6L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2285,
+ "src": "2385:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$",
+ "typeString": "type(library PoseidonUnit6L)"
+ }
+ },
+ "id": 2494,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2400:8:9",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2284,
+ "src": "2385:23:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[6] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2385:27:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2492,
+ "id": 2497,
+ "nodeType": "Return",
+ "src": "2378:34:9"
+ }
+ ]
+ },
+ "functionSelector": "db809cd5",
+ "id": 2499,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidon6",
+ "nameLocation": "2304:9:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2489,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2488,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "2334:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2499,
+ "src": "2314:22:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr",
+ "typeString": "uint256[6]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2485,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2314:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2487,
+ "length": {
+ "hexValue": "36",
+ "id": 2486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2322:1:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2314:10:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr",
+ "typeString": "uint256[6]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2313:24:9"
+ },
+ "returnParameters": {
+ "id": 2492,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2491,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2499,
+ "src": "2359:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2490,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2359:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2358:9:9"
+ },
+ "scope": 2514,
+ "src": "2295:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2512,
+ "nodeType": "Block",
+ "src": "2502:47:9",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2509,
+ "name": "el",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2502,
+ "src": "2539:2:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2507,
+ "name": "SpongePoseidon",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2409,
+ "src": "2519:14:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SpongePoseidon_$2409_$",
+ "typeString": "type(library SpongePoseidon)"
+ }
+ },
+ "id": 2508,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2534:4:9",
+ "memberName": "hash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2408,
+ "src": "2519:19:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory) pure returns (uint256)"
+ }
+ },
+ "id": 2510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2519:23:9",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2506,
+ "id": 2511,
+ "nodeType": "Return",
+ "src": "2512:30:9"
+ }
+ ]
+ },
+ "functionSelector": "a8ba0b28",
+ "id": 2513,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "poseidonSponge",
+ "nameLocation": "2434:14:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2503,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2502,
+ "mutability": "mutable",
+ "name": "el",
+ "nameLocation": "2468:2:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2513,
+ "src": "2449:21:9",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2500,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2449:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2501,
+ "nodeType": "ArrayTypeName",
+ "src": "2449:9:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2448:23:9"
+ },
+ "returnParameters": {
+ "id": 2506,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2505,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2513,
+ "src": "2493:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2504,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2493:7:9",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2492:9:9"
+ },
+ "scope": 2514,
+ "src": "2425:124:9",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2515,
+ "src": "1616:935:9",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:2516:9"
+ },
+ "id": 9
+ },
+ "@iden3/contracts/lib/PrimitiveTypeUtils.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/PrimitiveTypeUtils.sol",
+ "exportedSymbols": {
+ "BytesLib": [
+ 18568
+ ],
+ "PrimitiveTypeUtils": [
+ 2915
+ ]
+ },
+ "id": 2916,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2516,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:10"
+ },
+ {
+ "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol",
+ "file": "solidity-bytes-utils/contracts/BytesLib.sol",
+ "id": 2518,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2916,
+ "sourceUnit": 18569,
+ "src": "61:69:10",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 2517,
+ "name": "BytesLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18568,
+ "src": "69:8:10",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PrimitiveTypeUtils",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2915,
+ "linearizedBaseContracts": [
+ 2915
+ ],
+ "name": "PrimitiveTypeUtils",
+ "nameLocation": "140:18:10",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2534,
+ "nodeType": "Block",
+ "src": "282:97:10",
+ "statements": [
+ {
+ "expression": {
+ "id": 2531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2526,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2524,
+ "src": "292:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "hexValue": "3332",
+ "id": 2529,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "306:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ }
+ ],
+ "id": 2528,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "296:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ },
+ "typeName": {
+ "id": 2527,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "300:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ }
+ },
+ "id": 2530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "296:13:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "src": "292:17:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 2532,
+ "nodeType": "ExpressionStatement",
+ "src": "292:17:10"
+ },
+ {
+ "AST": {
+ "nativeSrc": "328:45:10",
+ "nodeType": "YulBlock",
+ "src": "328:45:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "b",
+ "nativeSrc": "353:1:10",
+ "nodeType": "YulIdentifier",
+ "src": "353:1:10"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "356:2:10",
+ "nodeType": "YulLiteral",
+ "src": "356:2:10",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "349:3:10",
+ "nodeType": "YulIdentifier",
+ "src": "349:3:10"
+ },
+ "nativeSrc": "349:10:10",
+ "nodeType": "YulFunctionCall",
+ "src": "349:10:10"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "361:1:10",
+ "nodeType": "YulIdentifier",
+ "src": "361:1:10"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "342:6:10",
+ "nodeType": "YulIdentifier",
+ "src": "342:6:10"
+ },
+ "nativeSrc": "342:21:10",
+ "nodeType": "YulFunctionCall",
+ "src": "342:21:10"
+ },
+ "nativeSrc": "342:21:10",
+ "nodeType": "YulExpressionStatement",
+ "src": "342:21:10"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 2524,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "353:1:10",
+ "valueSize": 1
+ },
+ {
+ "declaration": 2521,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "361:1:10",
+ "valueSize": 1
+ }
+ ],
+ "id": 2533,
+ "nodeType": "InlineAssembly",
+ "src": "319:54:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2519,
+ "nodeType": "StructuredDocumentation",
+ "src": "165:38:10",
+ "text": " @dev uint256ToBytes"
+ },
+ "id": 2535,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "uint256ToBytes",
+ "nameLocation": "217:14:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2522,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2521,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "240:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2535,
+ "src": "232:9:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2520,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "232:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "231:11:10"
+ },
+ "returnParameters": {
+ "id": 2525,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2524,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "279:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2535,
+ "src": "266:14:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2523,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "266:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "265:16:10"
+ },
+ "scope": 2915,
+ "src": "208:171:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2631,
+ "nodeType": "Block",
+ "src": "502:1029:10",
+ "statements": [
+ {
+ "expression": {
+ "id": 2545,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2543,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "512:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 2544,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2538,
+ "src": "516:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "512:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2546,
+ "nodeType": "ExpressionStatement",
+ "src": "512:9:10"
+ },
+ {
+ "expression": {
+ "id": 2563,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2547,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "554:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2553,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2548,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "572:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307846463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030",
+ "id": 2549,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "576:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_115341536360906404779899502576747487978354537254490211650198994186870666100480_by_1",
+ "typeString": "int_const 1153...(70 digits omitted)...0480"
+ },
+ "value": "0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00"
+ },
+ "src": "572:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2551,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "571:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2552,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "647:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "571:77:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2554,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "570:79:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2560,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2555,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "666:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307830304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646",
+ "id": 2556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "670:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_450552876409790643671482431940419874915447411150352389258589821042463539455_by_1",
+ "typeString": "int_const 4505...(67 digits omitted)...9455"
+ },
+ "value": "0x00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF"
+ },
+ "src": "666:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2558,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "665:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "741:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "665:77:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2561,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "664:79:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "570:173:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "554:189:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2564,
+ "nodeType": "ExpressionStatement",
+ "src": "554:189:10"
+ },
+ {
+ "expression": {
+ "id": 2581,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2565,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "788:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2568,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2566,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "806:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307846464646303030304646464630303030464646463030303046464646303030304646464630303030464646463030303046464646303030304646464630303030",
+ "id": 2567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "810:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_115790322417210952336529717160220497262186272106556906860092653394915770695680_by_1",
+ "typeString": "int_const 1157...(70 digits omitted)...5680"
+ },
+ "value": "0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000"
+ },
+ "src": "806:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2569,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "805:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 2570,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "881:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "805:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2572,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "804:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2573,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "901:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307830303030464646463030303046464646303030304646464630303030464646463030303046464646303030304646464630303030464646463030303046464646",
+ "id": 2574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "905:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1766820105243087041267848467410591083712559083657179364930612997358944255_by_1",
+ "typeString": "int_const 1766...(65 digits omitted)...4255"
+ },
+ "value": "0x0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF"
+ },
+ "src": "901:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2576,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "900:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 2577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "976:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "900:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2579,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "899:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "804:175:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "788:191:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2582,
+ "nodeType": "ExpressionStatement",
+ "src": "788:191:10"
+ },
+ {
+ "expression": {
+ "id": 2599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2583,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1024:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2589,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2586,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2584,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1042:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307846464646464646463030303030303030464646464646464630303030303030304646464646464646303030303030303046464646464646463030303030303030",
+ "id": 2585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1046:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_115792089210356248762697446947946071893095522863849111501270640965525260206080_by_1",
+ "typeString": "int_const 1157...(70 digits omitted)...6080"
+ },
+ "value": "0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000"
+ },
+ "src": "1042:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2587,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1041:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 2588,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1117:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "1041:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2590,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1040:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2593,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2591,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1137:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307830303030303030304646464646464646303030303030303046464646464646463030303030303030464646464646464630303030303030304646464646464646",
+ "id": 2592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1141:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_26959946660873538060741835960174461801791452538186943042387869433855_by_1",
+ "typeString": "int_const 2695...(60 digits omitted)...3855"
+ },
+ "value": "0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF"
+ },
+ "src": "1137:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2594,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1136:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 2595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1212:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "1136:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2597,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1135:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1040:175:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1024:191:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2600,
+ "nodeType": "ExpressionStatement",
+ "src": "1024:191:10"
+ },
+ {
+ "expression": {
+ "id": 2617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2601,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1260:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2607,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2604,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2602,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1278:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307846464646464646464646464646464646303030303030303030303030303030304646464646464646464646464646464630303030303030303030303030303030",
+ "id": 2603,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1282:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_115792089237316195417293883273301227089774477609353836086800156426807153786880_by_1",
+ "typeString": "int_const 1157...(70 digits omitted)...6880"
+ },
+ "value": "0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000"
+ },
+ "src": "1278:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2605,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1277:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 2606,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1353:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "1277:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2608,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1276:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2614,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2611,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2609,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1373:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307830303030303030303030303030303030464646464646464646464646464646463030303030303030303030303030303046464646464646464646464646464646",
+ "id": 2610,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1377:66:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6277101735386680763495507056286727952657427581105975853055_by_1",
+ "typeString": "int_const 6277...(50 digits omitted)...3055"
+ },
+ "value": "0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF"
+ },
+ "src": "1373:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2612,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1372:72:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 2613,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1448:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "1372:78:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2615,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1371:80:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1276:175:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1260:191:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2618,
+ "nodeType": "ExpressionStatement",
+ "src": "1260:191:10"
+ },
+ {
+ "expression": {
+ "id": 2629,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2619,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1497:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2620,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1502:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "313238",
+ "id": 2621,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1507:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "src": "1502:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2623,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1501:10:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2624,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2541,
+ "src": "1515:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "313238",
+ "id": 2625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1520:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "src": "1515:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2627,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1514:10:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1501:23:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1497:27:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2630,
+ "nodeType": "ExpressionStatement",
+ "src": "1497:27:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2536,
+ "nodeType": "StructuredDocumentation",
+ "src": "385:39:10",
+ "text": " @dev reverse uint256"
+ },
+ "id": 2632,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "reverseUint256",
+ "nameLocation": "438:14:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2539,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2538,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "461:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2632,
+ "src": "453:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2537,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "453:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "452:15:10"
+ },
+ "returnParameters": {
+ "id": 2542,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2541,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "499:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2632,
+ "src": "491:9:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2540,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "491:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "490:11:10"
+ },
+ "scope": 2915,
+ "src": "429:1102:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2656,
+ "nodeType": "Block",
+ "src": "1650:82:10",
+ "statements": [
+ {
+ "expression": {
+ "id": 2642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2640,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2638,
+ "src": "1660:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 2641,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2635,
+ "src": "1664:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "1660:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "id": 2643,
+ "nodeType": "ExpressionStatement",
+ "src": "1660:9:10"
+ },
+ {
+ "expression": {
+ "id": 2654,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2644,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2638,
+ "src": "1702:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "id": 2653,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "id": 2647,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2645,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2638,
+ "src": "1707:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2646,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1712:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "1707:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ }
+ ],
+ "id": 2648,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1706:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "id": 2651,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2649,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2638,
+ "src": "1718:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1723:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "1718:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ }
+ ],
+ "id": 2652,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1717:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "1706:19:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "1702:23:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "id": 2655,
+ "nodeType": "ExpressionStatement",
+ "src": "1702:23:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2633,
+ "nodeType": "StructuredDocumentation",
+ "src": "1537:38:10",
+ "text": " @dev reverse uint16"
+ },
+ "id": 2657,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "reverseUint16",
+ "nameLocation": "1589:13:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2636,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2635,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "1610:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2657,
+ "src": "1603:12:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 2634,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "1603:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1602:14:10"
+ },
+ "returnParameters": {
+ "id": 2639,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2638,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "1647:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2657,
+ "src": "1640:8:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 2637,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "1640:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1639:10:10"
+ },
+ "scope": 2915,
+ "src": "1580:152:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2699,
+ "nodeType": "Block",
+ "src": "1851:182:10",
+ "statements": [
+ {
+ "expression": {
+ "id": 2667,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2665,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "1861:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 2666,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2660,
+ "src": "1865:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "1861:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2668,
+ "nodeType": "ExpressionStatement",
+ "src": "1861:9:10"
+ },
+ {
+ "expression": {
+ "id": 2685,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2669,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "1903:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2684,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2672,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2670,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "1909:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "30784646303046463030",
+ "id": 2671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1913:10:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4278255360_by_1",
+ "typeString": "int_const 4278255360"
+ },
+ "value": "0xFF00FF00"
+ },
+ "src": "1909:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2673,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1908:16:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2674,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1928:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "1908:21:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2676,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1907:23:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2679,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2677,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "1935:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "30783030464630304646",
+ "id": 2678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1939:10:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16711935_by_1",
+ "typeString": "int_const 16711935"
+ },
+ "value": "0x00FF00FF"
+ },
+ "src": "1935:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2680,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1934:16:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 2681,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1954:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "1934:21:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2683,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1933:23:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "1907:49:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "1903:53:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2686,
+ "nodeType": "ExpressionStatement",
+ "src": "1903:53:10"
+ },
+ {
+ "expression": {
+ "id": 2697,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2687,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "2001:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2690,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2688,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "2006:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 2689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2011:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "2006:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2691,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2005:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "id": 2694,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2692,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2663,
+ "src": "2018:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 2693,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2023:2:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "2018:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ ],
+ "id": 2695,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2017:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "2005:21:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "2001:25:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 2698,
+ "nodeType": "ExpressionStatement",
+ "src": "2001:25:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2658,
+ "nodeType": "StructuredDocumentation",
+ "src": "1738:38:10",
+ "text": " @dev reverse uint32"
+ },
+ "id": 2700,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "reverseUint32",
+ "nameLocation": "1790:13:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2661,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2660,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "1811:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2700,
+ "src": "1804:12:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 2659,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1804:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1803:14:10"
+ },
+ "returnParameters": {
+ "id": 2664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2663,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "1848:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2700,
+ "src": "1841:8:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 2662,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1841:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1840:10:10"
+ },
+ "scope": 2915,
+ "src": "1781:252:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2742,
+ "nodeType": "Block",
+ "src": "2169:180:10",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2712,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2703,
+ "src": "2189:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 2711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2183:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 2710,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2183:5:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2713,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2183:8:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 2714,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2192:6:10",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2183:15:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2717,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2705,
+ "src": "2208:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 2716,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2202:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 2715,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2202:5:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2202:8:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 2719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2211:6:10",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2202:15:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2183:34:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2724,
+ "nodeType": "IfStatement",
+ "src": "2179:77:10",
+ "trueBody": {
+ "id": 2723,
+ "nodeType": "Block",
+ "src": "2219:37:10",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "66616c7365",
+ "id": 2721,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2240:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "functionReturnParameters": 2709,
+ "id": 2722,
+ "nodeType": "Return",
+ "src": "2233:12:10"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "components": [
+ {
+ "id": 2728,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2703,
+ "src": "2301:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "id": 2729,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2300:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "expression": {
+ "id": 2726,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "2283:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 2727,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2287:12:10",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "2283:16:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 2730,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2283:21:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2725,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2273:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 2731,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2273:32:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "components": [
+ {
+ "id": 2735,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2705,
+ "src": "2337:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "id": 2736,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2336:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "expression": {
+ "id": 2733,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "2319:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 2734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2323:12:10",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "2319:16:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 2737,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2319:21:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2732,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2309:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 2738,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2309:32:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2273:68:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 2740,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2272:70:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 2709,
+ "id": 2741,
+ "nodeType": "Return",
+ "src": "2265:77:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2701,
+ "nodeType": "StructuredDocumentation",
+ "src": "2039:38:10",
+ "text": " @dev compareStrings"
+ },
+ "id": 2743,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "compareStrings",
+ "nameLocation": "2091:14:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2706,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2703,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "2120:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2743,
+ "src": "2106:15:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 2702,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2106:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2705,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "2137:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2743,
+ "src": "2123:15:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 2704,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2123:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2105:34:10"
+ },
+ "returnParameters": {
+ "id": 2709,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2708,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2743,
+ "src": "2163:4:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2707,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2163:4:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2162:6:10"
+ },
+ "scope": 2915,
+ "src": "2082:267:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2759,
+ "nodeType": "Block",
+ "src": "2712:43:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2755,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2746,
+ "src": "2745:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2754,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2737:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 2753,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2737:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2756,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2737:10:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 2752,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2729:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2751,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2729:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2757,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2729:19:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2750,
+ "id": 2758,
+ "nodeType": "Return",
+ "src": "2722:26:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2744,
+ "nodeType": "StructuredDocumentation",
+ "src": "2355:271:10",
+ "text": " @dev padRightToUint256 shift left 12 bytes\n @param b, bytes array with max length 32, other bytes are cut. e.g. 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n @return value e.g 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000"
+ },
+ "id": 2760,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "padRightToUint256",
+ "nameLocation": "2640:17:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2747,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2746,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "2671:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2760,
+ "src": "2658:14:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2745,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2658:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2657:16:10"
+ },
+ "returnParameters": {
+ "id": 2750,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2749,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2705:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2760,
+ "src": "2697:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2748,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2697:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2696:15:10"
+ },
+ "scope": 2915,
+ "src": "2631:124:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2769,
+ "nodeType": "Block",
+ "src": "2883:76:10",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2902:51:10",
+ "nodeType": "YulBlock",
+ "src": "2902:51:10",
+ "statements": [
+ {
+ "nativeSrc": "2916:27:10",
+ "nodeType": "YulAssignment",
+ "src": "2916:27:10",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "bys",
+ "nativeSrc": "2934:3:10",
+ "nodeType": "YulIdentifier",
+ "src": "2934:3:10"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2939:2:10",
+ "nodeType": "YulLiteral",
+ "src": "2939:2:10",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2930:3:10",
+ "nodeType": "YulIdentifier",
+ "src": "2930:3:10"
+ },
+ "nativeSrc": "2930:12:10",
+ "nodeType": "YulFunctionCall",
+ "src": "2930:12:10"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2924:5:10",
+ "nodeType": "YulIdentifier",
+ "src": "2924:5:10"
+ },
+ "nativeSrc": "2924:19:10",
+ "nodeType": "YulFunctionCall",
+ "src": "2924:19:10"
+ },
+ "variableNames": [
+ {
+ "name": "addr",
+ "nativeSrc": "2916:4:10",
+ "nodeType": "YulIdentifier",
+ "src": "2916:4:10"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 2766,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2916:4:10",
+ "valueSize": 1
+ },
+ {
+ "declaration": 2763,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2934:3:10",
+ "valueSize": 1
+ }
+ ],
+ "id": 2768,
+ "nodeType": "InlineAssembly",
+ "src": "2893:60:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2761,
+ "nodeType": "StructuredDocumentation",
+ "src": "2761:38:10",
+ "text": " @dev bytesToAddress"
+ },
+ "id": 2770,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "bytesToAddress",
+ "nameLocation": "2813:14:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2764,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2763,
+ "mutability": "mutable",
+ "name": "bys",
+ "nameLocation": "2841:3:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2770,
+ "src": "2828:16:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2762,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2828:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2827:18:10"
+ },
+ "returnParameters": {
+ "id": 2767,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2766,
+ "mutability": "mutable",
+ "name": "addr",
+ "nameLocation": "2877:4:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2770,
+ "src": "2869:12:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2765,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2869:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2868:14:10"
+ },
+ "scope": 2915,
+ "src": "2804:155:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2786,
+ "nodeType": "Block",
+ "src": "3122:60:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2782,
+ "name": "preBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2773,
+ "src": "3155:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 2783,
+ "name": "postBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2775,
+ "src": "3165:9:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 2780,
+ "name": "BytesLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18568,
+ "src": "3139:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_BytesLib_$18568_$",
+ "typeString": "type(library BytesLib)"
+ }
+ },
+ "id": 2781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3148:6:10",
+ "memberName": "concat",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 18253,
+ "src": "3139:15:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)"
+ }
+ },
+ "id": 2784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3139:36:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 2779,
+ "id": 2785,
+ "nodeType": "Return",
+ "src": "3132:43:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2771,
+ "nodeType": "StructuredDocumentation",
+ "src": "2965:30:10",
+ "text": " @dev concat"
+ },
+ "id": 2787,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "concat",
+ "nameLocation": "3009:6:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2776,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2773,
+ "mutability": "mutable",
+ "name": "preBytes",
+ "nameLocation": "3038:8:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2787,
+ "src": "3025:21:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2772,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3025:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2775,
+ "mutability": "mutable",
+ "name": "postBytes",
+ "nameLocation": "3069:9:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2787,
+ "src": "3056:22:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2774,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3056:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3015:69:10"
+ },
+ "returnParameters": {
+ "id": 2779,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2778,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2787,
+ "src": "3108:12:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2777,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3108:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3107:14:10"
+ },
+ "scope": 2915,
+ "src": "3000:182:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2806,
+ "nodeType": "Block",
+ "src": "3353:58:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2801,
+ "name": "bys",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2790,
+ "src": "3385:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 2802,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2792,
+ "src": "3390:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2803,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2794,
+ "src": "3397:6:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2799,
+ "name": "BytesLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18568,
+ "src": "3370:8:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_BytesLib_$18568_$",
+ "typeString": "type(library BytesLib)"
+ }
+ },
+ "id": 2800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3379:5:10",
+ "memberName": "slice",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 18299,
+ "src": "3370:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
+ }
+ },
+ "id": 2804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3370:34:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 2798,
+ "id": 2805,
+ "nodeType": "Return",
+ "src": "3363:41:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2788,
+ "nodeType": "StructuredDocumentation",
+ "src": "3188:29:10",
+ "text": " @dev slice"
+ },
+ "id": 2807,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "slice",
+ "nameLocation": "3231:5:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2795,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2790,
+ "mutability": "mutable",
+ "name": "bys",
+ "nameLocation": "3259:3:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2807,
+ "src": "3246:16:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2789,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3246:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2792,
+ "mutability": "mutable",
+ "name": "start",
+ "nameLocation": "3280:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2807,
+ "src": "3272:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2791,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3272:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2794,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "3303:6:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2807,
+ "src": "3295:14:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2793,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3295:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3236:79:10"
+ },
+ "returnParameters": {
+ "id": 2798,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2797,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2807,
+ "src": "3339:12:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2796,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3339:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3338:14:10"
+ },
+ "scope": 2915,
+ "src": "3222:189:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2823,
+ "nodeType": "Block",
+ "src": "3909:47:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2819,
+ "name": "_addr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2810,
+ "src": "3942:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2818,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3934:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 2817,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "3934:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2820,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3934:14:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 2816,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3926:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2815,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3926:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3926:23:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2814,
+ "id": 2822,
+ "nodeType": "Return",
+ "src": "3919:30:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2808,
+ "nodeType": "StructuredDocumentation",
+ "src": "3417:414:10",
+ "text": " @dev addressToUint256 converts address to uint256 which lower 20 bytes\n is an address in Big Endian\n @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to uint160\n @return uint256 representation of address 1390849295786071768276380950238675083608645509734"
+ },
+ "id": 2824,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addressToUint256",
+ "nameLocation": "3845:16:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2811,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2810,
+ "mutability": "mutable",
+ "name": "_addr",
+ "nameLocation": "3870:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2824,
+ "src": "3862:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2809,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3862:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3861:15:10"
+ },
+ "returnParameters": {
+ "id": 2814,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2813,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2824,
+ "src": "3900:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2812,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3900:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3899:9:10"
+ },
+ "scope": 2915,
+ "src": "3836:120:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2853,
+ "nodeType": "Block",
+ "src": "4443:224:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2833,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2827,
+ "src": "4474:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2838,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2827,
+ "src": "4499:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4491:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 2836,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "4491:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2839,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4491:14:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 2835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4483:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2834,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4483:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4483:23:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4474:32:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "676976656e20696e707574206973206e6f74206120726570726573656e746174696f6e206f6620616464726573732c203132206d6f7374207369676e69666963616e742062797465732073686f756c64206265207a65726f",
+ "id": 2842,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4520:90:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_d03629228ca99c43bce6f4df5ca5431360b842b6598cacaeaf93ab86f383aabb",
+ "typeString": "literal_string \"given input is not a representation of address, 12 most significant bytes should be zero\""
+ },
+ "value": "given input is not a representation of address, 12 most significant bytes should be zero"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_d03629228ca99c43bce6f4df5ca5431360b842b6598cacaeaf93ab86f383aabb",
+ "typeString": "literal_string \"given input is not a representation of address, 12 most significant bytes should be zero\""
+ }
+ ],
+ "id": 2832,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "4453:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4453:167:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2844,
+ "nodeType": "ExpressionStatement",
+ "src": "4453:167:10"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2849,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2827,
+ "src": "4653:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2848,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4645:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 2847,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "4645:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4645:14:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 2846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4637:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2845,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4637:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4637:23:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 2831,
+ "id": 2852,
+ "nodeType": "Return",
+ "src": "4630:30:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2825,
+ "nodeType": "StructuredDocumentation",
+ "src": "3962:403:10",
+ "text": " @dev uint256ToAddress converts uint256 which lower 20 bytes\n is an address in Big Endian to address\n @param input uint256 e.g. 1390849295786071768276380950238675083608645509734\n which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to address\n @return address representation of uint256 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
+ },
+ "id": 2854,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "uint256ToAddress",
+ "nameLocation": "4379:16:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2828,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2827,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "4404:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2854,
+ "src": "4396:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2826,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4396:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4395:15:10"
+ },
+ "returnParameters": {
+ "id": 2831,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2830,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2854,
+ "src": "4434:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2829,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4434:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4433:9:10"
+ },
+ "scope": 2915,
+ "src": "4370:297:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2870,
+ "nodeType": "Block",
+ "src": "5338:80:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2865,
+ "name": "_addr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2857,
+ "src": "5403:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2864,
+ "name": "addressToBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2914,
+ "src": "5388:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (address) pure returns (bytes memory)"
+ }
+ },
+ "id": 2866,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5388:21:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2863,
+ "name": "padRightToUint256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2760,
+ "src": "5370:17:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (bytes memory) pure returns (uint256)"
+ }
+ },
+ "id": 2867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5370:40:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2862,
+ "name": "reverseUint256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2632,
+ "src": "5355:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 2868,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5355:56:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 2861,
+ "id": 2869,
+ "nodeType": "Return",
+ "src": "5348:63:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2855,
+ "nodeType": "StructuredDocumentation",
+ "src": "4673:585:10",
+ "text": " @dev addressToChallenge converts address to uint256 which lower 20 bytes\n are representation of address in LittleEndian\n @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n addressToBytes: 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266\n padRightToUint256: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000,\n reverseUint256 result: 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n @return uint256: 583091486781463398742321306787801699791102451699"
+ },
+ "id": 2871,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addressToUint256LE",
+ "nameLocation": "5272:18:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2858,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2857,
+ "mutability": "mutable",
+ "name": "_addr",
+ "nameLocation": "5299:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2871,
+ "src": "5291:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2856,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5291:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5290:15:10"
+ },
+ "returnParameters": {
+ "id": 2861,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2860,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2871,
+ "src": "5329:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2859,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5329:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5328:9:10"
+ },
+ "scope": 2915,
+ "src": "5263:155:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2900,
+ "nodeType": "Block",
+ "src": "6133:259:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2880,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2874,
+ "src": "6164:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2885,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2874,
+ "src": "6189:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6181:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 2883,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "6181:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6181:14:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 2882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6173:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 2881,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6173:7:10",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6173:23:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6164:32:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "676976656e2075696e74323536206973206e6f74206120726570726573656e746174696f6e206f6620616e20616464726573732c203132206d6f7374207369676e69666963616e742062797465732073686f756c64206265207a65726f",
+ "id": 2889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6210:95:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_6e55973107c18f630420c531f26b0f5b957db6f9b27159007f994ce8996629a5",
+ "typeString": "literal_string \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\""
+ },
+ "value": "given uint256 is not a representation of an address, 12 most significant bytes should be zero"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_6e55973107c18f630420c531f26b0f5b957db6f9b27159007f994ce8996629a5",
+ "typeString": "literal_string \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\""
+ }
+ ],
+ "id": 2879,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "6143:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6143:172:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2891,
+ "nodeType": "ExpressionStatement",
+ "src": "6143:172:10"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2895,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2874,
+ "src": "6377:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2894,
+ "name": "reverseUint256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2632,
+ "src": "6362:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 2896,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6362:21:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2893,
+ "name": "uint256ToBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2535,
+ "src": "6347:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ }
+ },
+ "id": 2897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6347:37:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2892,
+ "name": "bytesToAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2770,
+ "src": "6332:14:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$",
+ "typeString": "function (bytes memory) pure returns (address)"
+ }
+ },
+ "id": 2898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6332:53:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 2878,
+ "id": 2899,
+ "nodeType": "Return",
+ "src": "6325:60:10"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 2872,
+ "nodeType": "StructuredDocumentation",
+ "src": "5424:629:10",
+ "text": " @dev uint256LEtoAddress - converts uint256 which 20 lower bytes\n are representation of address in LE to address\n @param input is uint256 which is created from bytes in LittleEndian:\n eg. 583091486781463398742321306787801699791102451699\n or 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n reverseUint256 result: 110194434039389003190498847789203126033799499726478230611233094447786700570624\n uint256ToBytes result: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n @return address - 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
+ },
+ "id": 2901,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "uint256LEToAddress",
+ "nameLocation": "6067:18:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2875,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2874,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "6094:5:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2901,
+ "src": "6086:13:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2873,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6086:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6085:15:10"
+ },
+ "returnParameters": {
+ "id": 2878,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2877,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2901,
+ "src": "6124:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2876,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6124:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6123:9:10"
+ },
+ "scope": 2915,
+ "src": "6058:334:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2913,
+ "nodeType": "Block",
+ "src": "6470:43:10",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2910,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2903,
+ "src": "6504:1:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2908,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "6487:3:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 2909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6491:12:10",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "6487:16:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 2911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6487:19:10",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 2907,
+ "id": 2912,
+ "nodeType": "Return",
+ "src": "6480:26:10"
+ }
+ ]
+ },
+ "id": 2914,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addressToBytes",
+ "nameLocation": "6407:14:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2904,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2903,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "6430:1:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2914,
+ "src": "6422:9:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2902,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6422:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6421:11:10"
+ },
+ "returnParameters": {
+ "id": 2907,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2906,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2914,
+ "src": "6456:12:10",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 2905,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "6456:5:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6455:14:10"
+ },
+ "scope": 2915,
+ "src": "6398:115:10",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 2916,
+ "src": "132:6383:10",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:6480:10"
+ },
+ "id": 10
+ },
+ "@iden3/contracts/lib/SmtLib.sol": {
+ "ast": {
+ "absolutePath": "@iden3/contracts/lib/SmtLib.sol",
+ "exportedSymbols": {
+ "ArrayUtils": [
+ 611
+ ],
+ "BinarySearchSmtRoots": [
+ 4636
+ ],
+ "PoseidonUnit2L": [
+ 2241
+ ],
+ "PoseidonUnit3L": [
+ 2252
+ ],
+ "SmtLib": [
+ 4449
+ ]
+ },
+ "id": 4637,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2917,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:11"
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/Poseidon.sol",
+ "file": "./Poseidon.sol",
+ "id": 2920,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4637,
+ "sourceUnit": 2515,
+ "src": "61:62:11",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 2918,
+ "name": "PoseidonUnit2L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2241,
+ "src": "69:14:11",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 2919,
+ "name": "PoseidonUnit3L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2252,
+ "src": "85:14:11",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/ArrayUtils.sol",
+ "file": "./ArrayUtils.sol",
+ "id": 2922,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4637,
+ "sourceUnit": 612,
+ "src": "124:44:11",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 2921,
+ "name": "ArrayUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 611,
+ "src": "132:10:11",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "SmtLib",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 2923,
+ "nodeType": "StructuredDocumentation",
+ "src": "170:74:11",
+ "text": "@title A sparse merkle tree implementation, which keeps tree history."
+ },
+ "fullyImplemented": true,
+ "id": 4449,
+ "linearizedBaseContracts": [
+ 4449
+ ],
+ "name": "SmtLib",
+ "nameLocation": "696:6:11",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "documentation": {
+ "id": 2924,
+ "nodeType": "StructuredDocumentation",
+ "src": "709:77:11",
+ "text": " @dev Max return array length for SMT root history requests"
+ },
+ "functionSelector": "40a73d98",
+ "id": 2927,
+ "mutability": "constant",
+ "name": "ROOT_INFO_LIST_RETURN_LIMIT",
+ "nameLocation": "815:27:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4449,
+ "src": "791:58:11",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2925,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "791:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31303030",
+ "id": 2926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "845:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "value": "1000"
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 2928,
+ "nodeType": "StructuredDocumentation",
+ "src": "856:142:11",
+ "text": " @dev Max depth hard cap for SMT\n We can't use depth > 256 because of bits number limitation in the uint256 data type."
+ },
+ "functionSelector": "a751be24",
+ "id": 2931,
+ "mutability": "constant",
+ "name": "MAX_DEPTH_HARD_CAP",
+ "nameLocation": "1027:18:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4449,
+ "src": "1003:48:11",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2929,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1003:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "323536",
+ "id": 2930,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1048:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ },
+ "value": "256"
+ },
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "SmtLib.NodeType",
+ "documentation": {
+ "id": 2932,
+ "nodeType": "StructuredDocumentation",
+ "src": "1058:46:11",
+ "text": " @dev Enum of SMT node types"
+ },
+ "id": 2936,
+ "members": [
+ {
+ "id": 2933,
+ "name": "EMPTY",
+ "nameLocation": "1133:5:11",
+ "nodeType": "EnumValue",
+ "src": "1133:5:11"
+ },
+ {
+ "id": 2934,
+ "name": "LEAF",
+ "nameLocation": "1148:4:11",
+ "nodeType": "EnumValue",
+ "src": "1148:4:11"
+ },
+ {
+ "id": 2935,
+ "name": "MIDDLE",
+ "nameLocation": "1162:6:11",
+ "nodeType": "EnumValue",
+ "src": "1162:6:11"
+ }
+ ],
+ "name": "NodeType",
+ "nameLocation": "1114:8:11",
+ "nodeType": "EnumDefinition",
+ "src": "1109:65:11"
+ },
+ {
+ "canonicalName": "SmtLib.Data",
+ "documentation": {
+ "id": 2937,
+ "nodeType": "StructuredDocumentation",
+ "src": "1180:338:11",
+ "text": " @dev Sparse Merkle Tree data\n Note that we count the SMT depth starting from 0, which is the root level.\n For example, the following tree has a maxDepth = 2:\n O <- root level (depth = 0)\n / \\\n O O <- depth = 1\n / \\ / \\\n O O O O <- depth = 2"
+ },
+ "id": 2960,
+ "members": [
+ {
+ "constant": false,
+ "id": 2942,
+ "mutability": "mutable",
+ "name": "nodes",
+ "nameLocation": "1570:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "1545:30:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node)"
+ },
+ "typeName": {
+ "id": 2941,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 2938,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1553:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1545:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 2940,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2939,
+ "name": "Node",
+ "nameLocations": [
+ "1564:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "1564:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "1564:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2946,
+ "mutability": "mutable",
+ "name": "rootEntries",
+ "nameLocation": "1597:11:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "1585:23:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2944,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2943,
+ "name": "RootEntry",
+ "nameLocations": [
+ "1585:9:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2987,
+ "src": "1585:9:11"
+ },
+ "referencedDeclaration": 2987,
+ "src": "1585:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry"
+ }
+ },
+ "id": 2945,
+ "nodeType": "ArrayTypeName",
+ "src": "1585:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2951,
+ "mutability": "mutable",
+ "name": "rootIndexes",
+ "nameLocation": "1648:11:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "1618:41:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[])"
+ },
+ "typeName": {
+ "id": 2950,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 2947,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1626:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1618:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[])"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "baseType": {
+ "id": 2948,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1637:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2949,
+ "nodeType": "ArrayTypeName",
+ "src": "1637:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2953,
+ "mutability": "mutable",
+ "name": "maxDepth",
+ "nameLocation": "1705:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "1697:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2952,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1697:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2955,
+ "mutability": "mutable",
+ "name": "initialized",
+ "nameLocation": "1728:11:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "1723:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2954,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1723:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2959,
+ "mutability": "mutable",
+ "name": "__gap",
+ "nameLocation": "2106:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2960,
+ "src": "2094:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$45_storage_ptr",
+ "typeString": "uint256[45]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2956,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2094:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2958,
+ "length": {
+ "hexValue": "3435",
+ "id": 2957,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2102:2:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_45_by_1",
+ "typeString": "int_const 45"
+ },
+ "value": "45"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "2094:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$45_storage_ptr",
+ "typeString": "uint256[45]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Data",
+ "nameLocation": "1530:4:11",
+ "nodeType": "StructDefinition",
+ "scope": 4449,
+ "src": "1523:595:11",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "SmtLib.Proof",
+ "documentation": {
+ "id": 2961,
+ "nodeType": "StructuredDocumentation",
+ "src": "2124:560:11",
+ "text": " @dev Struct of the node proof in the SMT.\n @param root This SMT root.\n @param existence A flag, which shows if the leaf index exists in the SMT.\n @param siblings An array of SMT sibling node hashes.\n @param index An index of the leaf in the SMT.\n @param value A value of the leaf in the SMT.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n @param auxIndex An index of the auxiliary leaf in the SMT.\n @param auxValue An value of the auxiliary leaf in the SMT."
+ },
+ "id": 2979,
+ "members": [
+ {
+ "constant": false,
+ "id": 2963,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "2720:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2712:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2962,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2712:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2965,
+ "mutability": "mutable",
+ "name": "existence",
+ "nameLocation": "2739:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2734:14:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2964,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2734:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2968,
+ "mutability": "mutable",
+ "name": "siblings",
+ "nameLocation": "2768:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2758:18:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2966,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2758:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2967,
+ "nodeType": "ArrayTypeName",
+ "src": "2758:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2970,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "2794:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2786:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2969,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2786:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2972,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2817:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2809:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2971,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2809:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2974,
+ "mutability": "mutable",
+ "name": "auxExistence",
+ "nameLocation": "2837:12:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2832:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2973,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2832:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2976,
+ "mutability": "mutable",
+ "name": "auxIndex",
+ "nameLocation": "2867:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2859:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2975,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2859:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2978,
+ "mutability": "mutable",
+ "name": "auxValue",
+ "nameLocation": "2893:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2979,
+ "src": "2885:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2977,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2885:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Proof",
+ "nameLocation": "2696:5:11",
+ "nodeType": "StructDefinition",
+ "scope": 4449,
+ "src": "2689:219:11",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "SmtLib.RootEntry",
+ "documentation": {
+ "id": 2980,
+ "nodeType": "StructuredDocumentation",
+ "src": "2914:272:11",
+ "text": " @dev Struct for SMT root internal storage representation.\n @param root SMT root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain."
+ },
+ "id": 2987,
+ "members": [
+ {
+ "constant": false,
+ "id": 2982,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "3226:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2987,
+ "src": "3218:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2981,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3218:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2984,
+ "mutability": "mutable",
+ "name": "createdAtTimestamp",
+ "nameLocation": "3248:18:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2987,
+ "src": "3240:26:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2983,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3240:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2986,
+ "mutability": "mutable",
+ "name": "createdAtBlock",
+ "nameLocation": "3284:14:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2987,
+ "src": "3276:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2985,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3276:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "RootEntry",
+ "nameLocation": "3198:9:11",
+ "nodeType": "StructDefinition",
+ "scope": 4449,
+ "src": "3191:114:11",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "SmtLib.RootEntryInfo",
+ "documentation": {
+ "id": 2988,
+ "nodeType": "StructuredDocumentation",
+ "src": "3311:553:11",
+ "text": " @dev Struct for public interfaces to represent SMT root info.\n @param root This SMT root.\n @param replacedByRoot A root, which replaced this root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain.\n @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain."
+ },
+ "id": 3001,
+ "members": [
+ {
+ "constant": false,
+ "id": 2990,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "3908:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "3900:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2989,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3900:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2992,
+ "mutability": "mutable",
+ "name": "replacedByRoot",
+ "nameLocation": "3930:14:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "3922:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2991,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3922:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2994,
+ "mutability": "mutable",
+ "name": "createdAtTimestamp",
+ "nameLocation": "3962:18:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "3954:26:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2993,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3954:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2996,
+ "mutability": "mutable",
+ "name": "replacedAtTimestamp",
+ "nameLocation": "3998:19:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "3990:27:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2995,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3990:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2998,
+ "mutability": "mutable",
+ "name": "createdAtBlock",
+ "nameLocation": "4035:14:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "4027:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2997,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4027:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3000,
+ "mutability": "mutable",
+ "name": "replacedAtBlock",
+ "nameLocation": "4067:15:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3001,
+ "src": "4059:23:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4059:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "RootEntryInfo",
+ "nameLocation": "3876:13:11",
+ "nodeType": "StructDefinition",
+ "scope": 4449,
+ "src": "3869:220:11",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "SmtLib.Node",
+ "documentation": {
+ "id": 3002,
+ "nodeType": "StructuredDocumentation",
+ "src": "4095:240:11",
+ "text": " @dev Struct of SMT node.\n @param NodeType type of node.\n @param childLeft left child of node.\n @param childRight right child of node.\n @param Index index of node.\n @param Value value of node."
+ },
+ "id": 3014,
+ "members": [
+ {
+ "constant": false,
+ "id": 3005,
+ "mutability": "mutable",
+ "name": "nodeType",
+ "nameLocation": "4371:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3014,
+ "src": "4362:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "typeName": {
+ "id": 3004,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3003,
+ "name": "NodeType",
+ "nameLocations": [
+ "4362:8:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2936,
+ "src": "4362:8:11"
+ },
+ "referencedDeclaration": 2936,
+ "src": "4362:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3007,
+ "mutability": "mutable",
+ "name": "childLeft",
+ "nameLocation": "4397:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3014,
+ "src": "4389:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3006,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4389:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3009,
+ "mutability": "mutable",
+ "name": "childRight",
+ "nameLocation": "4424:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3014,
+ "src": "4416:18:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3008,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4416:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3011,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "4452:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3014,
+ "src": "4444:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3010,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4444:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3013,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4475:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3014,
+ "src": "4467:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3012,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4467:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Node",
+ "nameLocation": "4347:4:11",
+ "nodeType": "StructDefinition",
+ "scope": 4449,
+ "src": "4340:147:11",
+ "visibility": "public"
+ },
+ {
+ "global": false,
+ "id": 3018,
+ "libraryName": {
+ "id": 3015,
+ "name": "BinarySearchSmtRoots",
+ "nameLocations": [
+ "4499:20:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4636,
+ "src": "4499:20:11"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "4493:36:11",
+ "typeName": {
+ "id": 3017,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3016,
+ "name": "Data",
+ "nameLocations": [
+ "4524:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "4524:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "4524:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ }
+ },
+ {
+ "global": false,
+ "id": 3022,
+ "libraryName": {
+ "id": 3019,
+ "name": "ArrayUtils",
+ "nameLocations": [
+ "4540:10:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 611,
+ "src": "4540:10:11"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "4534:31:11",
+ "typeName": {
+ "baseType": {
+ "id": 3020,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4555:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3021,
+ "nodeType": "ArrayTypeName",
+ "src": "4555:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ {
+ "body": {
+ "id": 3039,
+ "nodeType": "Block",
+ "src": "4740:82:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 3032,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3026,
+ "src": "4769:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3033,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3028,
+ "src": "4775:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3031,
+ "name": "rootExists",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3729,
+ "src": "4758:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (bool)"
+ }
+ },
+ "id": 3034,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4758:22:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "526f6f7420646f6573206e6f74206578697374",
+ "id": 3035,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4782:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec",
+ "typeString": "literal_string \"Root does not exist\""
+ },
+ "value": "Root does not exist"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec",
+ "typeString": "literal_string \"Root does not exist\""
+ }
+ ],
+ "id": 3030,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "4750:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4750:54:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3037,
+ "nodeType": "ExpressionStatement",
+ "src": "4750:54:11"
+ },
+ {
+ "id": 3038,
+ "nodeType": "PlaceholderStatement",
+ "src": "4814:1:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3023,
+ "nodeType": "StructuredDocumentation",
+ "src": "4571:105:11",
+ "text": " @dev Reverts if root does not exist in SMT roots history.\n @param root SMT root."
+ },
+ "id": 3040,
+ "name": "onlyExistingRoot",
+ "nameLocation": "4690:16:11",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 3029,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3026,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "4720:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3040,
+ "src": "4707:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3025,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3024,
+ "name": "Data",
+ "nameLocations": [
+ "4707:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "4707:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "4707:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3028,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "4734:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3040,
+ "src": "4726:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3027,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4726:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4706:33:11"
+ },
+ "src": "4681:141:11",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 3090,
+ "nodeType": "Block",
+ "src": "5031:356:11",
+ "statements": [
+ {
+ "assignments": [
+ 3056
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3056,
+ "mutability": "mutable",
+ "name": "node",
+ "nameLocation": "5053:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3090,
+ "src": "5041:16:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3055,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3054,
+ "name": "Node",
+ "nameLocations": [
+ "5041:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "5041:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "5041:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3065,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 3058,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "5089:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "5098:4:11",
+ "memberName": "LEAF",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2934,
+ "src": "5089:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3060,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5127:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3061,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5154:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "id": 3062,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3046,
+ "src": "5176:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3063,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3048,
+ "src": "5198:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3057,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "5060:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 3064,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "5079:8:11",
+ "5116:9:11",
+ "5142:10:11",
+ "5169:5:11",
+ "5191:5:11"
+ ],
+ "names": [
+ "nodeType",
+ "childLeft",
+ "childRight",
+ "index",
+ "value"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "5060:150:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5041:169:11"
+ },
+ {
+ "assignments": [
+ 3067
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3067,
+ "mutability": "mutable",
+ "name": "prevRoot",
+ "nameLocation": "5229:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3090,
+ "src": "5221:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3066,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5221:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3071,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 3069,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3044,
+ "src": "5248:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ ],
+ "id": 3068,
+ "name": "getRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3506,
+ "src": "5240:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 3070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5240:13:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5221:32:11"
+ },
+ {
+ "assignments": [
+ 3073
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3073,
+ "mutability": "mutable",
+ "name": "newRoot",
+ "nameLocation": "5271:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3090,
+ "src": "5263:15:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3072,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5263:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3080,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 3075,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3044,
+ "src": "5290:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3076,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3056,
+ "src": "5296:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "id": 3077,
+ "name": "prevRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3067,
+ "src": "5302:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5312:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 3074,
+ "name": "_addLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4003,
+ "src": "5281:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)"
+ }
+ },
+ "id": 3079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5281:33:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5263:51:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3082,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3044,
+ "src": "5335:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3083,
+ "name": "newRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3073,
+ "src": "5341:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 3084,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "5350:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 3085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5356:9:11",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "5350:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 3086,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "5367:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 3087,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5373:6:11",
+ "memberName": "number",
+ "nodeType": "MemberAccess",
+ "src": "5367:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3081,
+ "name": "_addEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4448,
+ "src": "5325:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256,uint256)"
+ }
+ },
+ "id": 3088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5325:55:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3089,
+ "nodeType": "ExpressionStatement",
+ "src": "5325:55:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3041,
+ "nodeType": "StructuredDocumentation",
+ "src": "4828:109:11",
+ "text": " @dev Add a leaf to the SMT\n @param i Index of a leaf\n @param v Value of a leaf"
+ },
+ "functionSelector": "c1d29f01",
+ "id": 3091,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 3051,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3044,
+ "src": "5025:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "id": 3052,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 3050,
+ "name": "onlyInitialized",
+ "nameLocations": [
+ "5009:15:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3830,
+ "src": "5009:15:11"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "5009:21:11"
+ }
+ ],
+ "name": "addLeaf",
+ "nameLocation": "4951:7:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3049,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3044,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "4972:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3091,
+ "src": "4959:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3043,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3042,
+ "name": "Data",
+ "nameLocations": [
+ "4959:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "4959:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "4959:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3046,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4986:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3091,
+ "src": "4978:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3045,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4978:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3048,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "4997:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3091,
+ "src": "4989:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3047,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4989:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4958:41:11"
+ },
+ "returnParameters": {
+ "id": 3053,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5031:0:11"
+ },
+ "scope": 4449,
+ "src": "4942:445:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3104,
+ "nodeType": "Block",
+ "src": "5564:47:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 3100,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3095,
+ "src": "5581:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3101,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5586:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "5581:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 3102,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5598:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5581:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 3099,
+ "id": 3103,
+ "nodeType": "Return",
+ "src": "5574:30:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3092,
+ "nodeType": "StructuredDocumentation",
+ "src": "5393:85:11",
+ "text": " @dev Get SMT root history length\n @return SMT history length"
+ },
+ "functionSelector": "62e8f215",
+ "id": 3105,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootHistoryLength",
+ "nameLocation": "5492:20:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3096,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3095,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "5526:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3105,
+ "src": "5513:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3094,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3093,
+ "name": "Data",
+ "nameLocations": [
+ "5513:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "5513:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "5513:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5512:19:11"
+ },
+ "returnParameters": {
+ "id": 3099,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3098,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3105,
+ "src": "5555:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3097,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5555:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5554:9:11"
+ },
+ "scope": 4449,
+ "src": "5483:128:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3173,
+ "nodeType": "Block",
+ "src": "5952:425:11",
+ "statements": [
+ {
+ "assignments": [
+ 3121,
+ 3123
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3121,
+ "mutability": "mutable",
+ "name": "start",
+ "nameLocation": "5971:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3173,
+ "src": "5963:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3120,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5963:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3123,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "5986:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3173,
+ "src": "5978:11:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3122,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5978:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3133,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "expression": {
+ "id": 3126,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3109,
+ "src": "6033:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3127,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6038:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "6033:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 3128,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6050:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6033:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3129,
+ "name": "startIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3111,
+ "src": "6070:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3130,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3113,
+ "src": "6094:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3131,
+ "name": "ROOT_INFO_LIST_RETURN_LIMIT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2927,
+ "src": "6114:27:11",
+ "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"
+ }
+ ],
+ "expression": {
+ "id": 3124,
+ "name": "ArrayUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 611,
+ "src": "5993:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_ArrayUtils_$611_$",
+ "typeString": "type(library ArrayUtils)"
+ }
+ },
+ "id": 3125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6004:15:11",
+ "memberName": "calculateBounds",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 610,
+ "src": "5993:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"
+ }
+ },
+ "id": 3132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5993:158:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5962:189:11"
+ },
+ {
+ "assignments": [
+ 3138
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3138,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "6185:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3173,
+ "src": "6162:29:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3136,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3135,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "6162:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "6162:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "6162:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3137,
+ "nodeType": "ArrayTypeName",
+ "src": "6162:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3147,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3143,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3123,
+ "src": "6214:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 3144,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3121,
+ "src": "6220:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6214:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "6194:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (struct SmtLib.RootEntryInfo memory[] memory)"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3140,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3139,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "6198:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "6198:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "6198:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3141,
+ "nodeType": "ArrayTypeName",
+ "src": "6198:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ }
+ },
+ "id": 3146,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6194:32:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6162:64:11"
+ },
+ {
+ "body": {
+ "id": 3169,
+ "nodeType": "Block",
+ "src": "6275:73:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 3158,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3138,
+ "src": "6289:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "id": 3162,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3161,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3159,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3149,
+ "src": "6296:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 3160,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3121,
+ "src": "6300:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6296:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6289:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3164,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3109,
+ "src": "6329:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3165,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3149,
+ "src": "6335:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3163,
+ "name": "_getRootInfoByIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4376,
+ "src": "6309:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6309:28:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "src": "6289:48:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "id": 3168,
+ "nodeType": "ExpressionStatement",
+ "src": "6289:48:11"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3152,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3149,
+ "src": "6261:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 3153,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3123,
+ "src": "6265:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6261:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3170,
+ "initializationExpression": {
+ "assignments": [
+ 3149
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3149,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "6250:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3170,
+ "src": "6242:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3148,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6242:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3151,
+ "initialValue": {
+ "id": 3150,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3121,
+ "src": "6254:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6242:17:11"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 3156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "6270:3:11",
+ "subExpression": {
+ "id": 3155,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3149,
+ "src": "6270:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3157,
+ "nodeType": "ExpressionStatement",
+ "src": "6270:3:11"
+ },
+ "nodeType": "ForStatement",
+ "src": "6237:111:11"
+ },
+ {
+ "expression": {
+ "id": 3171,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3138,
+ "src": "6364:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "functionReturnParameters": 3119,
+ "id": 3172,
+ "nodeType": "Return",
+ "src": "6357:13:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3106,
+ "nodeType": "StructuredDocumentation",
+ "src": "5617:174:11",
+ "text": " @dev Get SMT root history\n @param startIndex start index of history\n @param length history length\n @return array of RootEntryInfo structs"
+ },
+ "functionSelector": "21d60953",
+ "id": 3174,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootHistory",
+ "nameLocation": "5805:14:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3114,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3109,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "5842:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3174,
+ "src": "5829:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3108,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3107,
+ "name": "Data",
+ "nameLocations": [
+ "5829:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "5829:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "5829:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3111,
+ "mutability": "mutable",
+ "name": "startIndex",
+ "nameLocation": "5864:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3174,
+ "src": "5856:18:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3110,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5856:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3113,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "5892:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3174,
+ "src": "5884:14:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3112,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5884:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5819:85:11"
+ },
+ "returnParameters": {
+ "id": 3119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3118,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3174,
+ "src": "5928:22:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3116,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3115,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "5928:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "5928:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "5928:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3117,
+ "nodeType": "ArrayTypeName",
+ "src": "5928:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5927:24:11"
+ },
+ "scope": 4449,
+ "src": "5796:581:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3191,
+ "nodeType": "Block",
+ "src": "6591:44:11",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 3186,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3178,
+ "src": "6608:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3187,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6613:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "6608:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 3189,
+ "indexExpression": {
+ "id": 3188,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3180,
+ "src": "6619:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6608:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "functionReturnParameters": 3185,
+ "id": 3190,
+ "nodeType": "Return",
+ "src": "6601:27:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3175,
+ "nodeType": "StructuredDocumentation",
+ "src": "6383:115:11",
+ "text": " @dev Get the SMT node by hash\n @param nodeHash Hash of a node\n @return A node struct"
+ },
+ "functionSelector": "e170cf6e",
+ "id": 3192,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getNode",
+ "nameLocation": "6512:7:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3181,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3178,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "6533:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3192,
+ "src": "6520:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3177,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3176,
+ "name": "Data",
+ "nameLocations": [
+ "6520:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "6520:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "6520:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3180,
+ "mutability": "mutable",
+ "name": "nodeHash",
+ "nameLocation": "6547:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3192,
+ "src": "6539:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3179,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6539:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6519:37:11"
+ },
+ "returnParameters": {
+ "id": 3185,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3184,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3192,
+ "src": "6578:11:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3183,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3182,
+ "name": "Node",
+ "nameLocations": [
+ "6578:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "6578:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "6578:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6577:13:11"
+ },
+ "scope": 4449,
+ "src": "6503:132:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3212,
+ "nodeType": "Block",
+ "src": "6902:66:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3205,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3196,
+ "src": "6934:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3206,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3198,
+ "src": "6940:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 3208,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3196,
+ "src": "6955:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ ],
+ "id": 3207,
+ "name": "getRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3506,
+ "src": "6947:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 3209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6947:13:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3204,
+ "name": "getProofByRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3424,
+ "src": "6919:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 3210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6919:42:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 3203,
+ "id": 3211,
+ "nodeType": "Return",
+ "src": "6912:49:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3193,
+ "nodeType": "StructuredDocumentation",
+ "src": "6641:167:11",
+ "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT.\n @param index A node index.\n @return SMT proof struct."
+ },
+ "functionSelector": "5db40cda",
+ "id": 3213,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getProof",
+ "nameLocation": "6822:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3199,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3196,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "6844:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3213,
+ "src": "6831:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3195,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3194,
+ "name": "Data",
+ "nameLocations": [
+ "6831:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "6831:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "6831:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3198,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "6858:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3213,
+ "src": "6850:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3197,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6850:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6830:34:11"
+ },
+ "returnParameters": {
+ "id": 3203,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3202,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3213,
+ "src": "6888:12:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 3201,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3200,
+ "name": "Proof",
+ "nameLocations": [
+ "6888:5:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "6888:5:11"
+ },
+ "referencedDeclaration": 2979,
+ "src": "6888:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6887:14:11"
+ },
+ "scope": 4449,
+ "src": "6813:155:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3423,
+ "nodeType": "Block",
+ "src": "7425:1730:11",
+ "statements": [
+ {
+ "assignments": [
+ 3235
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3235,
+ "mutability": "mutable",
+ "name": "siblings",
+ "nameLocation": "7452:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3423,
+ "src": "7435:25:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3233,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7435:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3234,
+ "nodeType": "ArrayTypeName",
+ "src": "7435:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3242,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 3239,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3217,
+ "src": "7477:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3240,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7482:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "7477:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "7463:13:11",
+ "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": 3236,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7467:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3237,
+ "nodeType": "ArrayTypeName",
+ "src": "7467:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ "id": 3241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7463:28:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7435:56:11"
+ },
+ {
+ "body": {
+ "id": 3260,
+ "nodeType": "Block",
+ "src": "7616:40:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 3254,
+ "name": "siblings",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3235,
+ "src": "7630:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 3256,
+ "indexExpression": {
+ "id": 3255,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3244,
+ "src": "7639:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "7630:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 3257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7644:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "7630:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3259,
+ "nodeType": "ExpressionStatement",
+ "src": "7630:15:11"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3247,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3244,
+ "src": "7592:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 3248,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3217,
+ "src": "7596:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3249,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7601:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "7596:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7592:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3261,
+ "initializationExpression": {
+ "assignments": [
+ 3244
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3244,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "7585:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3261,
+ "src": "7577:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3243,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7577:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3246,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 3245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7589:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7577:13:11"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 3252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "7611:3:11",
+ "subExpression": {
+ "id": 3251,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3244,
+ "src": "7611:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3253,
+ "nodeType": "ExpressionStatement",
+ "src": "7611:3:11"
+ },
+ "nodeType": "ForStatement",
+ "src": "7572:84:11"
+ },
+ {
+ "assignments": [
+ 3264
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3264,
+ "mutability": "mutable",
+ "name": "proof",
+ "nameLocation": "7679:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3423,
+ "src": "7666:18:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 3263,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3262,
+ "name": "Proof",
+ "nameLocations": [
+ "7666:5:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "7666:5:11"
+ },
+ "referencedDeclaration": 2979,
+ "src": "7666:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3275,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 3266,
+ "name": "historicalRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3221,
+ "src": "7713:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 3267,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7752:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "id": 3268,
+ "name": "siblings",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3235,
+ "src": "7781:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "id": 3269,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3219,
+ "src": "7810:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3270,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7836:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 3271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7865:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 3272,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7894:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7919:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 3265,
+ "name": "Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2979,
+ "src": "7687:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Proof_$2979_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Proof storage pointer)"
+ }
+ },
+ "id": 3274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "7707:4:11",
+ "7741:9:11",
+ "7771:8:11",
+ "7803:5:11",
+ "7829:5:11",
+ "7851:12:11",
+ "7884:8:11",
+ "7909:8:11"
+ ],
+ "names": [
+ "root",
+ "existence",
+ "siblings",
+ "index",
+ "value",
+ "auxExistence",
+ "auxIndex",
+ "auxValue"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "7687:244:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7666:265:11"
+ },
+ {
+ "assignments": [
+ 3277
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3277,
+ "mutability": "mutable",
+ "name": "nextNodeHash",
+ "nameLocation": "7950:12:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3423,
+ "src": "7942:20:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3276,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7942:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3279,
+ "initialValue": {
+ "id": 3278,
+ "name": "historicalRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3221,
+ "src": "7965:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7942:37:11"
+ },
+ {
+ "assignments": [
+ 3282
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3282,
+ "mutability": "mutable",
+ "name": "node",
+ "nameLocation": "8001:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3423,
+ "src": "7989:16:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3281,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3280,
+ "name": "Node",
+ "nameLocations": [
+ "7989:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "7989:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "7989:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3283,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7989:16:11"
+ },
+ {
+ "body": {
+ "id": 3419,
+ "nodeType": "Block",
+ "src": "8061:1066:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3295,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8075:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3297,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3217,
+ "src": "8090:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3298,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3277,
+ "src": "8096:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3296,
+ "name": "getNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3192,
+ "src": "8082:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_Node_$3014_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.Node memory)"
+ }
+ },
+ "id": 3299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8082:27:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "8075:34:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3301,
+ "nodeType": "ExpressionStatement",
+ "src": "8075:34:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3306,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3302,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8127:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3303,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8132:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "8127:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3304,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "8144:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3305,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8153:5:11",
+ "memberName": "EMPTY",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2933,
+ "src": "8144:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "8127:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3313,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3309,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8208:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3310,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8213:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "8208:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3311,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "8225:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8234:4:11",
+ "memberName": "LEAF",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2934,
+ "src": "8225:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "8208:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3365,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8692:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3366,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8697:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "8692:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3367,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "8709:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8718:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "8709:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "8692:32:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 3415,
+ "nodeType": "Block",
+ "src": "9057:60:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "496e76616c6964206e6f64652074797065",
+ "id": 3412,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9082:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e",
+ "typeString": "literal_string \"Invalid node type\""
+ },
+ "value": "Invalid node type"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e",
+ "typeString": "literal_string \"Invalid node type\""
+ }
+ ],
+ "id": 3411,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -19,
+ -19
+ ],
+ "referencedDeclaration": -19,
+ "src": "9075:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 3413,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9075:27:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3414,
+ "nodeType": "ExpressionStatement",
+ "src": "9075:27:11"
+ }
+ ]
+ },
+ "id": 3416,
+ "nodeType": "IfStatement",
+ "src": "8688:429:11",
+ "trueBody": {
+ "id": 3410,
+ "nodeType": "Block",
+ "src": "8726:325:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3370,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8749:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3371,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8755:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2970,
+ "src": "8749:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 3372,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3285,
+ "src": "8764:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8749:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 3374,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "8748:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8769:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "8748:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3377,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8774:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "8748:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 3408,
+ "nodeType": "Block",
+ "src": "8910:127:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3397,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3394,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3277,
+ "src": "8932:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3395,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8947:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3396,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8952:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "8947:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8932:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3398,
+ "nodeType": "ExpressionStatement",
+ "src": "8932:29:11"
+ },
+ {
+ "expression": {
+ "id": 3406,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 3399,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8983:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3402,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8989:8:11",
+ "memberName": "siblings",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2968,
+ "src": "8983:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 3403,
+ "indexExpression": {
+ "id": 3401,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3285,
+ "src": "8998:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "8983:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3404,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "9003:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3405,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9008:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "9003:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8983:35:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3407,
+ "nodeType": "ExpressionStatement",
+ "src": "8983:35:11"
+ }
+ ]
+ },
+ "id": 3409,
+ "nodeType": "IfStatement",
+ "src": "8744:293:11",
+ "trueBody": {
+ "id": 3393,
+ "nodeType": "Block",
+ "src": "8777:127:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3382,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3379,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3277,
+ "src": "8799:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3380,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8814:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3381,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8819:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "8814:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8799:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3383,
+ "nodeType": "ExpressionStatement",
+ "src": "8799:30:11"
+ },
+ {
+ "expression": {
+ "id": 3391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 3384,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8851:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3387,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8857:8:11",
+ "memberName": "siblings",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2968,
+ "src": "8851:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 3388,
+ "indexExpression": {
+ "id": 3386,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3285,
+ "src": "8866:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "8851:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3389,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8871:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3390,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8876:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "8871:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8851:34:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3392,
+ "nodeType": "ExpressionStatement",
+ "src": "8851:34:11"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "id": 3417,
+ "nodeType": "IfStatement",
+ "src": "8204:913:11",
+ "trueBody": {
+ "id": 3364,
+ "nodeType": "Block",
+ "src": "8240:442:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3314,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8262:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3315,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8267:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "8262:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3316,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8276:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3317,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8282:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2970,
+ "src": "8276:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8262:25:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 3362,
+ "nodeType": "Block",
+ "src": "8431:237:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3334,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8453:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3336,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8459:12:11",
+ "memberName": "auxExistence",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2974,
+ "src": "8453:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 3337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8474:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "8453:25:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3339,
+ "nodeType": "ExpressionStatement",
+ "src": "8453:25:11"
+ },
+ {
+ "expression": {
+ "id": 3345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3340,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8500:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3342,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8506:8:11",
+ "memberName": "auxIndex",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2976,
+ "src": "8500:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3343,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8517:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3344,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8522:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "8517:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8500:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3346,
+ "nodeType": "ExpressionStatement",
+ "src": "8500:27:11"
+ },
+ {
+ "expression": {
+ "id": 3352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3347,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8549:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3349,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8555:8:11",
+ "memberName": "auxValue",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2978,
+ "src": "8549:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3350,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8566:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3351,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8571:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "8566:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8549:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3353,
+ "nodeType": "ExpressionStatement",
+ "src": "8549:27:11"
+ },
+ {
+ "expression": {
+ "id": 3359,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3354,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8598:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3356,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8604:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2972,
+ "src": "8598:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3357,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8612:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3358,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8617:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "8612:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8598:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3360,
+ "nodeType": "ExpressionStatement",
+ "src": "8598:24:11"
+ },
+ {
+ "id": 3361,
+ "nodeType": "Break",
+ "src": "8644:5:11"
+ }
+ ]
+ },
+ "id": 3363,
+ "nodeType": "IfStatement",
+ "src": "8258:410:11",
+ "trueBody": {
+ "id": 3333,
+ "nodeType": "Block",
+ "src": "8289:136:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3319,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8311:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3321,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8317:9:11",
+ "memberName": "existence",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2965,
+ "src": "8311:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 3322,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8329:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "8311:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3324,
+ "nodeType": "ExpressionStatement",
+ "src": "8311:22:11"
+ },
+ {
+ "expression": {
+ "id": 3330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3325,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "8355:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "id": 3327,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8361:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2972,
+ "src": "8355:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 3328,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3282,
+ "src": "8369:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3329,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8374:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "8369:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8355:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3331,
+ "nodeType": "ExpressionStatement",
+ "src": "8355:24:11"
+ },
+ {
+ "id": 3332,
+ "nodeType": "Break",
+ "src": "8401:5:11"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "id": 3418,
+ "nodeType": "IfStatement",
+ "src": "8123:994:11",
+ "trueBody": {
+ "id": 3308,
+ "nodeType": "Block",
+ "src": "8160:38:11",
+ "statements": [
+ {
+ "id": 3307,
+ "nodeType": "Break",
+ "src": "8178:5:11"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3288,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3285,
+ "src": "8036:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "expression": {
+ "id": 3289,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3217,
+ "src": "8041:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3290,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8046:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "8041:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8036:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3420,
+ "initializationExpression": {
+ "assignments": [
+ 3285
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3285,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "8029:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3420,
+ "src": "8021:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3284,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8021:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3287,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 3286,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8033:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8021:13:11"
+ },
+ "isSimpleCounterLoop": false,
+ "loopExpression": {
+ "expression": {
+ "id": 3293,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "8056:3:11",
+ "subExpression": {
+ "id": 3292,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3285,
+ "src": "8056:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3294,
+ "nodeType": "ExpressionStatement",
+ "src": "8056:3:11"
+ },
+ "nodeType": "ForStatement",
+ "src": "8016:1111:11"
+ },
+ {
+ "expression": {
+ "id": 3421,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3264,
+ "src": "9143:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 3230,
+ "id": 3422,
+ "nodeType": "Return",
+ "src": "9136:12:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3214,
+ "nodeType": "StructuredDocumentation",
+ "src": "6974:260:11",
+ "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT for some historical tree state.\n @param index A node index\n @param historicalRoot Historical SMT roof to get proof for.\n @return Proof struct."
+ },
+ "functionSelector": "79c17a96",
+ "id": 3424,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 3224,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3217,
+ "src": "7380:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3225,
+ "name": "historicalRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3221,
+ "src": "7386:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 3226,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 3223,
+ "name": "onlyExistingRoot",
+ "nameLocations": [
+ "7363:16:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3040,
+ "src": "7363:16:11"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "7363:38:11"
+ }
+ ],
+ "name": "getProofByRoot",
+ "nameLocation": "7248:14:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3222,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3217,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "7285:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3424,
+ "src": "7272:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3216,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3215,
+ "name": "Data",
+ "nameLocations": [
+ "7272:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "7272:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "7272:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3219,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "7307:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3424,
+ "src": "7299:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7299:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3221,
+ "mutability": "mutable",
+ "name": "historicalRoot",
+ "nameLocation": "7330:14:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3424,
+ "src": "7322:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3220,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7322:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7262:88:11"
+ },
+ "returnParameters": {
+ "id": 3230,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3229,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3424,
+ "src": "7411:12:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 3228,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3227,
+ "name": "Proof",
+ "nameLocations": [
+ "7411:5:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "7411:5:11"
+ },
+ "referencedDeclaration": 2979,
+ "src": "7411:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7410:14:11"
+ },
+ "scope": 4449,
+ "src": "7239:1916:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3453,
+ "nodeType": "Block",
+ "src": "9561:142:11",
+ "statements": [
+ {
+ "assignments": [
+ 3440
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3440,
+ "mutability": "mutable",
+ "name": "rootInfo",
+ "nameLocation": "9592:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3453,
+ "src": "9571:29:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 3439,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3438,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "9571:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "9571:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "9571:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3445,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 3442,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3428,
+ "src": "9621:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3443,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3432,
+ "src": "9627:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3441,
+ "name": "getRootInfoByTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3535,
+ "src": "9603:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9603:34:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9571:66:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3447,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3428,
+ "src": "9669:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3448,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3430,
+ "src": "9675:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 3449,
+ "name": "rootInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3440,
+ "src": "9682:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "id": 3450,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9691:4:11",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2990,
+ "src": "9682:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3446,
+ "name": "getProofByRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3424,
+ "src": "9654:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 3451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9654:42:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 3437,
+ "id": 3452,
+ "nodeType": "Return",
+ "src": "9647:49:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3425,
+ "nodeType": "StructuredDocumentation",
+ "src": "9161:253:11",
+ "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical timestamp.\n @param index Node index.\n @param timestamp The latest timestamp to get proof for.\n @return Proof struct."
+ },
+ "functionSelector": "13827136",
+ "id": 3454,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getProofByTime",
+ "nameLocation": "9428:14:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3433,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3428,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "9465:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3454,
+ "src": "9452:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3427,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3426,
+ "name": "Data",
+ "nameLocations": [
+ "9452:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "9452:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "9452:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3430,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "9487:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3454,
+ "src": "9479:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3429,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9479:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3432,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "9510:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3454,
+ "src": "9502:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3431,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9502:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9442:83:11"
+ },
+ "returnParameters": {
+ "id": 3437,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3436,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3454,
+ "src": "9547:12:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 3435,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3434,
+ "name": "Proof",
+ "nameLocations": [
+ "9547:5:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "9547:5:11"
+ },
+ "referencedDeclaration": 2979,
+ "src": "9547:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9546:14:11"
+ },
+ "scope": 4449,
+ "src": "9419:284:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3483,
+ "nodeType": "Block",
+ "src": "10122:145:11",
+ "statements": [
+ {
+ "assignments": [
+ 3470
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3470,
+ "mutability": "mutable",
+ "name": "rootInfo",
+ "nameLocation": "10153:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3483,
+ "src": "10132:29:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 3469,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3468,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "10132:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "10132:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "10132:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3475,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 3472,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3458,
+ "src": "10183:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3473,
+ "name": "blockNumber",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3462,
+ "src": "10189:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3471,
+ "name": "getRootInfoByBlock",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3564,
+ "src": "10164:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10164:37:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10132:69:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3477,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3458,
+ "src": "10233:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3478,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3460,
+ "src": "10239:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 3479,
+ "name": "rootInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3470,
+ "src": "10246:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "id": 3480,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10255:4:11",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2990,
+ "src": "10246:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3476,
+ "name": "getProofByRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3424,
+ "src": "10218:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)"
+ }
+ },
+ "id": 3481,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10218:42:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof memory"
+ }
+ },
+ "functionReturnParameters": 3467,
+ "id": 3482,
+ "nodeType": "Return",
+ "src": "10211:49:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3455,
+ "nodeType": "StructuredDocumentation",
+ "src": "9709:261:11",
+ "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical block number.\n @param index Node index.\n @param blockNumber The latest block number to get proof for.\n @return Proof struct."
+ },
+ "functionSelector": "792a470f",
+ "id": 3484,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getProofByBlock",
+ "nameLocation": "9984:15:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3463,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3458,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "10022:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3484,
+ "src": "10009:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3457,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3456,
+ "name": "Data",
+ "nameLocations": [
+ "10009:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "10009:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "10009:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3460,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "10044:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3484,
+ "src": "10036:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3459,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10036:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3462,
+ "mutability": "mutable",
+ "name": "blockNumber",
+ "nameLocation": "10067:11:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3484,
+ "src": "10059:19:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3461,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10059:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9999:85:11"
+ },
+ "returnParameters": {
+ "id": 3467,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3466,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3484,
+ "src": "10108:12:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr",
+ "typeString": "struct SmtLib.Proof"
+ },
+ "typeName": {
+ "id": 3465,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3464,
+ "name": "Proof",
+ "nameLocations": [
+ "10108:5:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2979,
+ "src": "10108:5:11"
+ },
+ "referencedDeclaration": 2979,
+ "src": "10108:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr",
+ "typeString": "struct SmtLib.Proof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10107:14:11"
+ },
+ "scope": 4449,
+ "src": "9975:292:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3505,
+ "nodeType": "Block",
+ "src": "10361:74:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 3495,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3487,
+ "src": "10378:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3496,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10383:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "10378:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 3502,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 3497,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3487,
+ "src": "10395:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3498,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10400:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "10395:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 3499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10412:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "10395:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3500,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10421:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "10395:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "10378:45:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ "id": 3503,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10424:4:11",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2982,
+ "src": "10378:50:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 3494,
+ "id": 3504,
+ "nodeType": "Return",
+ "src": "10371:57:11"
+ }
+ ]
+ },
+ "functionSelector": "79f97125",
+ "id": 3506,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 3490,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3487,
+ "src": "10337:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "id": 3491,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 3489,
+ "name": "onlyInitialized",
+ "nameLocations": [
+ "10321:15:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3830,
+ "src": "10321:15:11"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "10321:21:11"
+ }
+ ],
+ "name": "getRoot",
+ "nameLocation": "10282:7:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3488,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3487,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "10303:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3506,
+ "src": "10290:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3486,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3485,
+ "name": "Data",
+ "nameLocations": [
+ "10290:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "10290:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "10290:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10289:19:11"
+ },
+ "returnParameters": {
+ "id": 3494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3493,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3506,
+ "src": "10352:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3492,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10352:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10351:9:11"
+ },
+ "scope": 4449,
+ "src": "10273:162:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3534,
+ "nodeType": "Block",
+ "src": "10746:268:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3522,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3519,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3512,
+ "src": "10764:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "expression": {
+ "id": 3520,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "10777:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 3521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10783:9:11",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "10777:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10764:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4e6f206675747572652074696d657374616d707320616c6c6f776564",
+ "id": 3523,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10794:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1",
+ "typeString": "literal_string \"No future timestamps allowed\""
+ },
+ "value": "No future timestamps allowed"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1",
+ "typeString": "literal_string \"No future timestamps allowed\""
+ }
+ ],
+ "id": 3518,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "10756:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10756:69:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3525,
+ "nodeType": "ExpressionStatement",
+ "src": "10756:69:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3527,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3510,
+ "src": "10903:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3528,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3512,
+ "src": "10925:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 3529,
+ "name": "BinarySearchSmtRoots",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4636,
+ "src": "10952:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_BinarySearchSmtRoots_$4636_$",
+ "typeString": "type(library BinarySearchSmtRoots)"
+ }
+ },
+ "id": 3530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10973:10:11",
+ "memberName": "SearchType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4454,
+ "src": "10952:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$",
+ "typeString": "type(enum BinarySearchSmtRoots.SearchType)"
+ }
+ },
+ "id": 3531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10984:9:11",
+ "memberName": "TIMESTAMP",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4452,
+ "src": "10952:41:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ ],
+ "id": 3526,
+ "name": "_getRootInfoByTimestampOrBlock",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4410,
+ "src": "10855:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3532,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10855:152:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "functionReturnParameters": 3517,
+ "id": 3533,
+ "nodeType": "Return",
+ "src": "10836:171:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3507,
+ "nodeType": "StructuredDocumentation",
+ "src": "10441:170:11",
+ "text": " @dev Get root info by some historical timestamp.\n @param timestamp The latest timestamp to get the root info for.\n @return Root info struct"
+ },
+ "functionSelector": "17c850f0",
+ "id": 3535,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootInfoByTime",
+ "nameLocation": "10625:17:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3513,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3510,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "10665:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3535,
+ "src": "10652:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3509,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3508,
+ "name": "Data",
+ "nameLocations": [
+ "10652:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "10652:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "10652:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3512,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "10687:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3535,
+ "src": "10679:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3511,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10679:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10642:60:11"
+ },
+ "returnParameters": {
+ "id": 3517,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3516,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3535,
+ "src": "10724:20:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 3515,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3514,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "10724:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "10724:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "10724:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10723:22:11"
+ },
+ "scope": 4449,
+ "src": "10616:398:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3563,
+ "nodeType": "Block",
+ "src": "11326:177:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3548,
+ "name": "blockN",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3541,
+ "src": "11344:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "expression": {
+ "id": 3549,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "11354:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 3550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11360:6:11",
+ "memberName": "number",
+ "nodeType": "MemberAccess",
+ "src": "11354:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11344:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4e6f2066757475726520626c6f636b7320616c6c6f776564",
+ "id": 3552,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11368:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f",
+ "typeString": "literal_string \"No future blocks allowed\""
+ },
+ "value": "No future blocks allowed"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f",
+ "typeString": "literal_string \"No future blocks allowed\""
+ }
+ ],
+ "id": 3547,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "11336:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3553,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11336:59:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3554,
+ "nodeType": "ExpressionStatement",
+ "src": "11336:59:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3556,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3539,
+ "src": "11444:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3557,
+ "name": "blockN",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3541,
+ "src": "11450:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 3558,
+ "name": "BinarySearchSmtRoots",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4636,
+ "src": "11458:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_BinarySearchSmtRoots_$4636_$",
+ "typeString": "type(library BinarySearchSmtRoots)"
+ }
+ },
+ "id": 3559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11479:10:11",
+ "memberName": "SearchType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4454,
+ "src": "11458:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$",
+ "typeString": "type(enum BinarySearchSmtRoots.SearchType)"
+ }
+ },
+ "id": 3560,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "11490:5:11",
+ "memberName": "BLOCK",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4453,
+ "src": "11458:37:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ ],
+ "id": 3555,
+ "name": "_getRootInfoByTimestampOrBlock",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4410,
+ "src": "11413:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3561,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11413:83:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "functionReturnParameters": 3546,
+ "id": 3562,
+ "nodeType": "Return",
+ "src": "11406:90:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3536,
+ "nodeType": "StructuredDocumentation",
+ "src": "11020:173:11",
+ "text": " @dev Get root info by some historical block number.\n @param blockN The latest block number to get the root info for.\n @return Root info struct"
+ },
+ "functionSelector": "dc9a7c8c",
+ "id": 3564,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootInfoByBlock",
+ "nameLocation": "11207:18:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3542,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3539,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "11248:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3564,
+ "src": "11235:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3538,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3537,
+ "name": "Data",
+ "nameLocations": [
+ "11235:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "11235:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "11235:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3541,
+ "mutability": "mutable",
+ "name": "blockN",
+ "nameLocation": "11270:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3564,
+ "src": "11262:14:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3540,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11262:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11225:57:11"
+ },
+ "returnParameters": {
+ "id": 3546,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3545,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3564,
+ "src": "11304:20:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 3544,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3543,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "11304:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "11304:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "11304:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11303:22:11"
+ },
+ "scope": 4449,
+ "src": "11198:305:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3604,
+ "nodeType": "Block",
+ "src": "11767:177:11",
+ "statements": [
+ {
+ "assignments": [
+ 3584
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3584,
+ "mutability": "mutable",
+ "name": "indexes",
+ "nameLocation": "11795:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3604,
+ "src": "11777:25:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3582,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11777:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3583,
+ "nodeType": "ArrayTypeName",
+ "src": "11777:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3589,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 3585,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3568,
+ "src": "11805:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3586,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11810:11:11",
+ "memberName": "rootIndexes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2951,
+ "src": "11805:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[] storage ref)"
+ }
+ },
+ "id": 3588,
+ "indexExpression": {
+ "id": 3587,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3570,
+ "src": "11822:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "11805:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
+ "typeString": "uint256[] storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11777:50:11"
+ },
+ {
+ "assignments": [
+ 3591
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3591,
+ "mutability": "mutable",
+ "name": "lastIndex",
+ "nameLocation": "11845:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3604,
+ "src": "11837:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3590,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11837:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3598,
+ "initialValue": {
+ "baseExpression": {
+ "id": 3592,
+ "name": "indexes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3584,
+ "src": "11857:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 3597,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3593,
+ "name": "indexes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3584,
+ "src": "11865:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 3594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11873:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "11865:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11882:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "11865:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "11857:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11837:47:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3600,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3568,
+ "src": "11921:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3601,
+ "name": "lastIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3591,
+ "src": "11927:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3599,
+ "name": "_getRootInfoByIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4376,
+ "src": "11901:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11901:36:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "functionReturnParameters": 3579,
+ "id": 3603,
+ "nodeType": "Return",
+ "src": "11894:43:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3565,
+ "nodeType": "StructuredDocumentation",
+ "src": "11509:105:11",
+ "text": " @dev Returns root info by root\n @param root root\n @return Root info struct"
+ },
+ "functionSelector": "dea7633a",
+ "id": 3605,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 3573,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3568,
+ "src": "11724:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3574,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3570,
+ "src": "11730:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 3575,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 3572,
+ "name": "onlyExistingRoot",
+ "nameLocations": [
+ "11707:16:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3040,
+ "src": "11707:16:11"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11707:28:11"
+ }
+ ],
+ "name": "getRootInfo",
+ "nameLocation": "11628:11:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3571,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3568,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "11662:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3605,
+ "src": "11649:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3567,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3566,
+ "name": "Data",
+ "nameLocations": [
+ "11649:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "11649:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "11649:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3570,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "11684:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3605,
+ "src": "11676:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3569,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11676:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11639:55:11"
+ },
+ "returnParameters": {
+ "id": 3579,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3578,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3605,
+ "src": "11745:20:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 3577,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3576,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "11745:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "11745:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "11745:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11744:22:11"
+ },
+ "scope": 4449,
+ "src": "11619:325:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3622,
+ "nodeType": "Block",
+ "src": "12297:53:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 3616,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3609,
+ "src": "12314:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3617,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12319:11:11",
+ "memberName": "rootIndexes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2951,
+ "src": "12314:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[] storage ref)"
+ }
+ },
+ "id": 3619,
+ "indexExpression": {
+ "id": 3618,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3611,
+ "src": "12331:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12314:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
+ "typeString": "uint256[] storage ref"
+ }
+ },
+ "id": 3620,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12337:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12314:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 3615,
+ "id": 3621,
+ "nodeType": "Return",
+ "src": "12307:36:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3606,
+ "nodeType": "StructuredDocumentation",
+ "src": "11950:220:11",
+ "text": " @dev Retrieve duplicate root quantity by id and state.\n If the root repeats more that once, the length may be greater than 1.\n @param root A root.\n @return Root root entries quantity."
+ },
+ "functionSelector": "0078f030",
+ "id": 3623,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getRootInfoListLengthByRoot",
+ "nameLocation": "12184:27:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3612,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3609,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "12234:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3623,
+ "src": "12221:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3608,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3607,
+ "name": "Data",
+ "nameLocations": [
+ "12221:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "12221:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "12221:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3611,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "12256:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3623,
+ "src": "12248:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3610,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12248:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12211:55:11"
+ },
+ "returnParameters": {
+ "id": 3615,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3614,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3623,
+ "src": "12288:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3613,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12288:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12287:9:11"
+ },
+ "scope": 4449,
+ "src": "12175:175:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3708,
+ "nodeType": "Block",
+ "src": "12908:485:11",
+ "statements": [
+ {
+ "assignments": [
+ 3648
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3648,
+ "mutability": "mutable",
+ "name": "indexes",
+ "nameLocation": "12936:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3708,
+ "src": "12918:25:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3646,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12918:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3647,
+ "nodeType": "ArrayTypeName",
+ "src": "12918:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3653,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 3649,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3627,
+ "src": "12946:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3650,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12951:11:11",
+ "memberName": "rootIndexes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2951,
+ "src": "12946:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[] storage ref)"
+ }
+ },
+ "id": 3652,
+ "indexExpression": {
+ "id": 3651,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3629,
+ "src": "12963:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12946:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
+ "typeString": "uint256[] storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12918:50:11"
+ },
+ {
+ "assignments": [
+ 3655,
+ 3657
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3655,
+ "mutability": "mutable",
+ "name": "start",
+ "nameLocation": "12987:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3708,
+ "src": "12979:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3654,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12979:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3657,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "13002:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3708,
+ "src": "12994:11:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3656,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12994:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3666,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 3660,
+ "name": "indexes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3648,
+ "src": "13049:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 3661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13057:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13049:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3662,
+ "name": "startIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3631,
+ "src": "13077:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3663,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3633,
+ "src": "13101:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3664,
+ "name": "ROOT_INFO_LIST_RETURN_LIMIT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2927,
+ "src": "13121:27:11",
+ "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"
+ }
+ ],
+ "expression": {
+ "id": 3658,
+ "name": "ArrayUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 611,
+ "src": "13009:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_ArrayUtils_$611_$",
+ "typeString": "type(library ArrayUtils)"
+ }
+ },
+ "id": 3659,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13020:15:11",
+ "memberName": "calculateBounds",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 610,
+ "src": "13009:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"
+ }
+ },
+ "id": 3665,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13009:149:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12978:180:11"
+ },
+ {
+ "assignments": [
+ 3671
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3671,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "13192:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3708,
+ "src": "13169:29:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3669,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3668,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "13169:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "13169:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "13169:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3670,
+ "nodeType": "ArrayTypeName",
+ "src": "13169:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3680,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3676,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3657,
+ "src": "13221:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 3677,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3655,
+ "src": "13227:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13221:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "13201:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (struct SmtLib.RootEntryInfo memory[] memory)"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3673,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3672,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "13205:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "13205:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "13205:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3674,
+ "nodeType": "ArrayTypeName",
+ "src": "13205:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ }
+ },
+ "id": 3679,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13201:32:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13169:64:11"
+ },
+ {
+ "body": {
+ "id": 3704,
+ "nodeType": "Block",
+ "src": "13281:82:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3702,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 3691,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3671,
+ "src": "13295:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "id": 3695,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3694,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3692,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3682,
+ "src": "13302:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 3693,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3655,
+ "src": "13306:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13302:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "13295:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3697,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3627,
+ "src": "13335:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 3698,
+ "name": "indexes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3648,
+ "src": "13341:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 3700,
+ "indexExpression": {
+ "id": 3699,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3682,
+ "src": "13349:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13341:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3696,
+ "name": "_getRootInfoByIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4376,
+ "src": "13315:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 3701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13315:37:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "src": "13295:57:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "id": 3703,
+ "nodeType": "ExpressionStatement",
+ "src": "13295:57:11"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3687,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3685,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3682,
+ "src": "13267:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 3686,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3657,
+ "src": "13271:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13267:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3705,
+ "initializationExpression": {
+ "assignments": [
+ 3682
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3682,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "13256:1:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3705,
+ "src": "13248:9:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3681,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13248:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3684,
+ "initialValue": {
+ "id": 3683,
+ "name": "start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3655,
+ "src": "13260:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13248:17:11"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 3689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "13276:3:11",
+ "subExpression": {
+ "id": 3688,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3682,
+ "src": "13276:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3690,
+ "nodeType": "ExpressionStatement",
+ "src": "13276:3:11"
+ },
+ "nodeType": "ForStatement",
+ "src": "13243:120:11"
+ },
+ {
+ "expression": {
+ "id": 3706,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3671,
+ "src": "13380:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory[] memory"
+ }
+ },
+ "functionReturnParameters": 3643,
+ "id": 3707,
+ "nodeType": "Return",
+ "src": "13373:13:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3624,
+ "nodeType": "StructuredDocumentation",
+ "src": "12356:335:11",
+ "text": " @dev Retrieve root infos list of duplicated root by id and state.\n If the root repeats more that once, the length list may be greater than 1.\n @param root A root.\n @param startIndex The index to start the list.\n @param length The length of the list.\n @return Root Root entries quantity."
+ },
+ "functionSelector": "91761b75",
+ "id": 3709,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 3636,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3627,
+ "src": "12863:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3637,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3629,
+ "src": "12869:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 3638,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 3635,
+ "name": "onlyExistingRoot",
+ "nameLocations": [
+ "12846:16:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3040,
+ "src": "12846:16:11"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "12846:28:11"
+ }
+ ],
+ "name": "getRootInfoListByRoot",
+ "nameLocation": "12705:21:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3634,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3627,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "12749:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3709,
+ "src": "12736:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3626,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3625,
+ "name": "Data",
+ "nameLocations": [
+ "12736:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "12736:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "12736:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3629,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "12771:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3709,
+ "src": "12763:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3628,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12763:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3631,
+ "mutability": "mutable",
+ "name": "startIndex",
+ "nameLocation": "12793:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3709,
+ "src": "12785:18:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3630,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12785:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3633,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "12821:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3709,
+ "src": "12813:14:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3632,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12813:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12726:107:11"
+ },
+ "returnParameters": {
+ "id": 3643,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3642,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3709,
+ "src": "12884:22:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 3640,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3639,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "12884:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "12884:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "12884:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "id": 3641,
+ "nodeType": "ArrayTypeName",
+ "src": "12884:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12883:24:11"
+ },
+ "scope": 4449,
+ "src": "12696:697:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3728,
+ "nodeType": "Block",
+ "src": "13587:57:11",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3726,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 3720,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3713,
+ "src": "13604:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3721,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13609:11:11",
+ "memberName": "rootIndexes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2951,
+ "src": "13604:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[] storage ref)"
+ }
+ },
+ "id": 3723,
+ "indexExpression": {
+ "id": 3722,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3715,
+ "src": "13621:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13604:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
+ "typeString": "uint256[] storage ref"
+ }
+ },
+ "id": 3724,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13627:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13604:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 3725,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13636:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "13604:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 3719,
+ "id": 3727,
+ "nodeType": "Return",
+ "src": "13597:40:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3710,
+ "nodeType": "StructuredDocumentation",
+ "src": "13399:103:11",
+ "text": " @dev Checks if root exists\n @param root root\n return true if root exists"
+ },
+ "functionSelector": "92f5b06c",
+ "id": 3729,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "rootExists",
+ "nameLocation": "13516:10:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3716,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3713,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "13540:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3729,
+ "src": "13527:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3712,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3711,
+ "name": "Data",
+ "nameLocations": [
+ "13527:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "13527:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "13527:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3715,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "13554:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3729,
+ "src": "13546:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3714,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13546:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13526:33:11"
+ },
+ "returnParameters": {
+ "id": 3719,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3718,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3729,
+ "src": "13581:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 3717,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "13581:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13580:6:11"
+ },
+ "scope": 4449,
+ "src": "13507:137:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3766,
+ "nodeType": "Block",
+ "src": "13802:276:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3739,
+ "name": "maxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3735,
+ "src": "13820:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 3740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13831:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "13820:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4d6178206465707468206d7573742062652067726561746572207468616e207a65726f",
+ "id": 3742,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13834:37:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30",
+ "typeString": "literal_string \"Max depth must be greater than zero\""
+ },
+ "value": "Max depth must be greater than zero"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30",
+ "typeString": "literal_string \"Max depth must be greater than zero\""
+ }
+ ],
+ "id": 3738,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13812:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13812:60:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3744,
+ "nodeType": "ExpressionStatement",
+ "src": "13812:60:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3749,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3746,
+ "name": "maxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3735,
+ "src": "13890:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "id": 3747,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3733,
+ "src": "13901:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3748,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13906:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "13901:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13890:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4d61782064657074682063616e206f6e6c7920626520696e63726561736564",
+ "id": 3750,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13916:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235",
+ "typeString": "literal_string \"Max depth can only be increased\""
+ },
+ "value": "Max depth can only be increased"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235",
+ "typeString": "literal_string \"Max depth can only be increased\""
+ }
+ ],
+ "id": 3745,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13882:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3751,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13882:68:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3752,
+ "nodeType": "ExpressionStatement",
+ "src": "13882:68:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3756,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3754,
+ "name": "maxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3735,
+ "src": "13968:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 3755,
+ "name": "MAX_DEPTH_HARD_CAP",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2931,
+ "src": "13980:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13968:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4d61782064657074682069732067726561746572207468616e206861726420636170",
+ "id": 3757,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14000:36:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3",
+ "typeString": "literal_string \"Max depth is greater than hard cap\""
+ },
+ "value": "Max depth is greater than hard cap"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3",
+ "typeString": "literal_string \"Max depth is greater than hard cap\""
+ }
+ ],
+ "id": 3753,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13960:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13960:77:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3759,
+ "nodeType": "ExpressionStatement",
+ "src": "13960:77:11"
+ },
+ {
+ "expression": {
+ "id": 3764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3760,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3733,
+ "src": "14047:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3762,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "14052:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "14047:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 3763,
+ "name": "maxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3735,
+ "src": "14063:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14047:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3765,
+ "nodeType": "ExpressionStatement",
+ "src": "14047:24:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3730,
+ "nodeType": "StructuredDocumentation",
+ "src": "13650:82:11",
+ "text": " @dev Sets max depth of the SMT\n @param maxDepth max depth"
+ },
+ "functionSelector": "0912610a",
+ "id": 3767,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setMaxDepth",
+ "nameLocation": "13746:11:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3736,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3733,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "13771:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3767,
+ "src": "13758:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3732,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3731,
+ "name": "Data",
+ "nameLocations": [
+ "13758:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "13758:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "13758:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3735,
+ "mutability": "mutable",
+ "name": "maxDepth",
+ "nameLocation": "13785:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3767,
+ "src": "13777:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3734,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13777:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13757:37:11"
+ },
+ "returnParameters": {
+ "id": 3737,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13802:0:11"
+ },
+ "scope": 4449,
+ "src": "13737:341:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 3779,
+ "nodeType": "Block",
+ "src": "14234:37:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 3776,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3771,
+ "src": "14251:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3777,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14256:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "14251:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 3775,
+ "id": 3778,
+ "nodeType": "Return",
+ "src": "14244:20:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3768,
+ "nodeType": "StructuredDocumentation",
+ "src": "14084:73:11",
+ "text": " @dev Gets max depth of the SMT\n return max depth"
+ },
+ "functionSelector": "893f99f3",
+ "id": 3780,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getMaxDepth",
+ "nameLocation": "14171:11:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3772,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3771,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14196:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3780,
+ "src": "14183:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3770,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3769,
+ "name": "Data",
+ "nameLocations": [
+ "14183:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "14183:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "14183:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14182:19:11"
+ },
+ "returnParameters": {
+ "id": 3775,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3774,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3780,
+ "src": "14225:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3773,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14225:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14224:9:11"
+ },
+ "scope": 4449,
+ "src": "14162:109:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3815,
+ "nodeType": "Block",
+ "src": "14479:180:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "14497:20:11",
+ "subExpression": {
+ "arguments": [
+ {
+ "id": 3791,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3784,
+ "src": "14512:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ ],
+ "id": 3790,
+ "name": "isInitialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3842,
+ "src": "14498:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_bool_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (bool)"
+ }
+ },
+ "id": 3792,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14498:19:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "536d7420697320616c726561647920696e697469616c697a6564",
+ "id": 3794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14519:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8",
+ "typeString": "literal_string \"Smt is already initialized\""
+ },
+ "value": "Smt is already initialized"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8",
+ "typeString": "literal_string \"Smt is already initialized\""
+ }
+ ],
+ "id": 3789,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14489:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14489:59:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3796,
+ "nodeType": "ExpressionStatement",
+ "src": "14489:59:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3798,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3784,
+ "src": "14570:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3799,
+ "name": "maxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3786,
+ "src": "14576:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3797,
+ "name": "setMaxDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3767,
+ "src": "14558:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256)"
+ }
+ },
+ "id": 3800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14558:27:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3801,
+ "nodeType": "ExpressionStatement",
+ "src": "14558:27:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 3803,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3784,
+ "src": "14605:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14611:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3805,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14614:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3806,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14617:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 3802,
+ "name": "_addEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4448,
+ "src": "14595:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256,uint256)"
+ }
+ },
+ "id": 3807,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14595:24:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3808,
+ "nodeType": "ExpressionStatement",
+ "src": "14595:24:11"
+ },
+ {
+ "expression": {
+ "id": 3813,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 3809,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3784,
+ "src": "14629:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3811,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "14634:11:11",
+ "memberName": "initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2955,
+ "src": "14629:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 3812,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14648:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "14629:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3814,
+ "nodeType": "ExpressionStatement",
+ "src": "14629:23:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 3781,
+ "nodeType": "StructuredDocumentation",
+ "src": "14277:131:11",
+ "text": " @dev Initialize SMT with max depth and root entry of an empty tree.\n @param maxDepth Max depth of the SMT."
+ },
+ "functionSelector": "9e43b813",
+ "id": 3816,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "initialize",
+ "nameLocation": "14422:10:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3787,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3784,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14446:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3816,
+ "src": "14433:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3783,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3782,
+ "name": "Data",
+ "nameLocations": [
+ "14433:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "14433:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "14433:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3786,
+ "mutability": "mutable",
+ "name": "maxDepth",
+ "nameLocation": "14460:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3816,
+ "src": "14452:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3785,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14452:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14432:37:11"
+ },
+ "returnParameters": {
+ "id": 3788,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "14479:0:11"
+ },
+ "scope": 4449,
+ "src": "14413:246:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 3829,
+ "nodeType": "Block",
+ "src": "14709:82:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 3823,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3819,
+ "src": "14741:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ ],
+ "id": 3822,
+ "name": "isInitialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3842,
+ "src": "14727:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_bool_$",
+ "typeString": "function (struct SmtLib.Data storage pointer) view returns (bool)"
+ }
+ },
+ "id": 3824,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14727:19:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "536d74206973206e6f7420696e697469616c697a6564",
+ "id": 3825,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14748:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be",
+ "typeString": "literal_string \"Smt is not initialized\""
+ },
+ "value": "Smt is not initialized"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be",
+ "typeString": "literal_string \"Smt is not initialized\""
+ }
+ ],
+ "id": 3821,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14719:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 3826,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14719:54:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3827,
+ "nodeType": "ExpressionStatement",
+ "src": "14719:54:11"
+ },
+ {
+ "id": 3828,
+ "nodeType": "PlaceholderStatement",
+ "src": "14783:1:11"
+ }
+ ]
+ },
+ "id": 3830,
+ "name": "onlyInitialized",
+ "nameLocation": "14674:15:11",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 3820,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3819,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14703:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3830,
+ "src": "14690:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3818,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3817,
+ "name": "Data",
+ "nameLocations": [
+ "14690:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "14690:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "14690:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14689:19:11"
+ },
+ "src": "14665:126:11",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 3841,
+ "nodeType": "Block",
+ "src": "14866:40:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 3838,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3833,
+ "src": "14883:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3839,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14888:11:11",
+ "memberName": "initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2955,
+ "src": "14883:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 3837,
+ "id": 3840,
+ "nodeType": "Return",
+ "src": "14876:23:11"
+ }
+ ]
+ },
+ "functionSelector": "ec145108",
+ "id": 3842,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isInitialized",
+ "nameLocation": "14806:13:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3834,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3833,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14833:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3842,
+ "src": "14820:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3832,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3831,
+ "name": "Data",
+ "nameLocations": [
+ "14820:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "14820:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "14820:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14819:19:11"
+ },
+ "returnParameters": {
+ "id": 3837,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3836,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 3842,
+ "src": "14860:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 3835,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "14860:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14859:6:11"
+ },
+ "scope": 4449,
+ "src": "14797:109:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 4002,
+ "nodeType": "Block",
+ "src": "15068:1464:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3857,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3852,
+ "src": "15082:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "id": 3858,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15090:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3859,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15095:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "15090:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15082:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3866,
+ "nodeType": "IfStatement",
+ "src": "15078:79:11",
+ "trueBody": {
+ "id": 3865,
+ "nodeType": "Block",
+ "src": "15105:52:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "4d61782064657074682072656163686564",
+ "id": 3862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15126:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479",
+ "typeString": "literal_string \"Max depth reached\""
+ },
+ "value": "Max depth reached"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479",
+ "typeString": "literal_string \"Max depth reached\""
+ }
+ ],
+ "id": 3861,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -19,
+ -19
+ ],
+ "referencedDeclaration": -19,
+ "src": "15119:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 3863,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15119:27:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 3864,
+ "nodeType": "ExpressionStatement",
+ "src": "15119:27:11"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 3869
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3869,
+ "mutability": "mutable",
+ "name": "node",
+ "nameLocation": "15179:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4002,
+ "src": "15167:16:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3868,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3867,
+ "name": "Node",
+ "nameLocations": [
+ "15167:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "15167:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "15167:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3874,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 3870,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15186:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 3871,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15191:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "15186:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 3873,
+ "indexExpression": {
+ "id": 3872,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3850,
+ "src": "15197:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "15186:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15167:39:11"
+ },
+ {
+ "assignments": [
+ 3876
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3876,
+ "mutability": "mutable",
+ "name": "nextNodeHash",
+ "nameLocation": "15224:12:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4002,
+ "src": "15216:20:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3875,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15216:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3877,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15216:20:11"
+ },
+ {
+ "assignments": [
+ 3879
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3879,
+ "mutability": "mutable",
+ "name": "leafHash",
+ "nameLocation": "15254:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4002,
+ "src": "15246:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3878,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15246:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3881,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 3880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15265:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15246:20:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3882,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15281:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3883,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15286:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "15281:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3884,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "15298:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15307:5:11",
+ "memberName": "EMPTY",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2933,
+ "src": "15298:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "15281:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3895,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15383:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3896,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15388:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "15383:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3897,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "15400:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15409:4:11",
+ "memberName": "LEAF",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2934,
+ "src": "15400:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "15383:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 3924,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3920,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15586:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3921,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15591:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "15586:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3922,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "15603:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15612:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "15603:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "15586:32:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 3997,
+ "nodeType": "IfStatement",
+ "src": "15582:918:11",
+ "trueBody": {
+ "id": 3996,
+ "nodeType": "Block",
+ "src": "15620:880:11",
+ "statements": [
+ {
+ "assignments": [
+ 3927
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 3927,
+ "mutability": "mutable",
+ "name": "newNodeMiddle",
+ "nameLocation": "15646:13:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 3996,
+ "src": "15634:25:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3926,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3925,
+ "name": "Node",
+ "nameLocations": [
+ "15634:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "15634:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "15634:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 3928,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15634:25:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3929,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15679:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3930,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15687:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "15679:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 3931,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3852,
+ "src": "15696:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15679:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 3933,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "15678:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15705:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "15678:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15710:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "15678:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 3987,
+ "nodeType": "Block",
+ "src": "16077:358:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3963,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3876,
+ "src": "16095:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3965,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "16119:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3966,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "16125:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 3967,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "16134:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3968,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16139:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "16134:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3969,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3852,
+ "src": "16150:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3970,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16158:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "16150:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3964,
+ "name": "_addLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4003,
+ "src": "16110:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)"
+ }
+ },
+ "id": 3972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16110:50:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16095:65:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3974,
+ "nodeType": "ExpressionStatement",
+ "src": "16095:65:11"
+ },
+ {
+ "expression": {
+ "id": 3985,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3975,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3927,
+ "src": "16179:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 3977,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "16232:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "16241:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "16232:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "id": 3979,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3876,
+ "src": "16280:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 3980,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "16326:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3981,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16331:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "16326:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16370:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16400:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 3976,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "16195:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 3984,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "16222:8:11",
+ "16269:9:11",
+ "16314:10:11",
+ "16363:5:11",
+ "16393:5:11"
+ ],
+ "names": [
+ "nodeType",
+ "childLeft",
+ "childRight",
+ "index",
+ "value"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "16195:225:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "16179:241:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3986,
+ "nodeType": "ExpressionStatement",
+ "src": "16179:241:11"
+ }
+ ]
+ },
+ "id": 3988,
+ "nodeType": "IfStatement",
+ "src": "15674:761:11",
+ "trueBody": {
+ "id": 3962,
+ "nodeType": "Block",
+ "src": "15713:358:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3938,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3876,
+ "src": "15731:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3940,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15755:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3941,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15761:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 3942,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15770:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3943,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15775:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "15770:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 3944,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3852,
+ "src": "15787:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 3945,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15795:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "15787:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3939,
+ "name": "_addLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4003,
+ "src": "15746:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)"
+ }
+ },
+ "id": 3947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15746:51:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15731:66:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3949,
+ "nodeType": "ExpressionStatement",
+ "src": "15731:66:11"
+ },
+ {
+ "expression": {
+ "id": 3960,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3950,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3927,
+ "src": "15816:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 3952,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "15869:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 3953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15878:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "15869:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "expression": {
+ "id": 3954,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15917:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3955,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15922:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "15917:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 3956,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3876,
+ "src": "15965:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 3957,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16006:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 3958,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16036:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 3951,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "15832:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 3959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "15859:8:11",
+ "15906:9:11",
+ "15953:10:11",
+ "15999:5:11",
+ "16029:5:11"
+ ],
+ "names": [
+ "nodeType",
+ "childLeft",
+ "childRight",
+ "index",
+ "value"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "15832:224:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "15816:240:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3961,
+ "nodeType": "ExpressionStatement",
+ "src": "15816:240:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 3994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3989,
+ "name": "leafHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3879,
+ "src": "16449:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3991,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "16469:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3992,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3927,
+ "src": "16475:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 3990,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "16460:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 3993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16460:29:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16449:40:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3995,
+ "nodeType": "ExpressionStatement",
+ "src": "16449:40:11"
+ }
+ ]
+ }
+ },
+ "id": 3998,
+ "nodeType": "IfStatement",
+ "src": "15379:1121:11",
+ "trueBody": {
+ "id": 3919,
+ "nodeType": "Block",
+ "src": "15415:161:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3900,
+ "name": "leafHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3879,
+ "src": "15429:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 3905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 3901,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15440:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3902,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15445:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "15440:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 3903,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15454:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 3904,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15462:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "15454:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15440:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "arguments": [
+ {
+ "id": 3911,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15538:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3912,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15544:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "id": 3913,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3869,
+ "src": "15553:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "id": 3914,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3852,
+ "src": "15559:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 3910,
+ "name": "_pushLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4149,
+ "src": "15528:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,struct SmtLib.Node memory,uint256) returns (uint256)"
+ }
+ },
+ "id": 3915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15528:37:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "15440:125:11",
+ "trueExpression": {
+ "arguments": [
+ {
+ "id": 3907,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15495:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3908,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15501:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 3906,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "15486:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 3909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15486:23:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15429:136:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3918,
+ "nodeType": "ExpressionStatement",
+ "src": "15429:136:11"
+ }
+ ]
+ }
+ },
+ "id": 3999,
+ "nodeType": "IfStatement",
+ "src": "15277:1223:11",
+ "trueBody": {
+ "id": 3894,
+ "nodeType": "Block",
+ "src": "15314:59:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 3892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 3887,
+ "name": "leafHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3879,
+ "src": "15328:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 3889,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3845,
+ "src": "15348:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 3890,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3848,
+ "src": "15354:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 3888,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "15339:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 3891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15339:23:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15328:34:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 3893,
+ "nodeType": "ExpressionStatement",
+ "src": "15328:34:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 4000,
+ "name": "leafHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3879,
+ "src": "16517:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 3856,
+ "id": 4001,
+ "nodeType": "Return",
+ "src": "16510:15:11"
+ }
+ ]
+ },
+ "id": 4003,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addLeaf",
+ "nameLocation": "14921:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 3853,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3845,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "14952:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4003,
+ "src": "14939:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 3844,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3843,
+ "name": "Data",
+ "nameLocations": [
+ "14939:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "14939:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "14939:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3848,
+ "mutability": "mutable",
+ "name": "newLeaf",
+ "nameLocation": "14978:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4003,
+ "src": "14966:19:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 3847,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 3846,
+ "name": "Node",
+ "nameLocations": [
+ "14966:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "14966:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "14966:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3850,
+ "mutability": "mutable",
+ "name": "nodeHash",
+ "nameLocation": "15003:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4003,
+ "src": "14995:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3849,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14995:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 3852,
+ "mutability": "mutable",
+ "name": "depth",
+ "nameLocation": "15029:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4003,
+ "src": "15021:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3851,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15021:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14929:111:11"
+ },
+ "returnParameters": {
+ "id": 3856,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 3855,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4003,
+ "src": "15059:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 3854,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15059:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15058:9:11"
+ },
+ "scope": 4449,
+ "src": "14912:1620:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4148,
+ "nodeType": "Block",
+ "src": "16698:1580:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4019,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4014,
+ "src": "16840:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "expression": {
+ "id": 4020,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4006,
+ "src": "16849:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4021,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16854:8:11",
+ "memberName": "maxDepth",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2953,
+ "src": "16849:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16840:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4028,
+ "nodeType": "IfStatement",
+ "src": "16836:80:11",
+ "trueBody": {
+ "id": 4027,
+ "nodeType": "Block",
+ "src": "16864:52:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "4d61782064657074682072656163686564",
+ "id": 4024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16885:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479",
+ "typeString": "literal_string \"Max depth reached\""
+ },
+ "value": "Max depth reached"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479",
+ "typeString": "literal_string \"Max depth reached\""
+ }
+ ],
+ "id": 4023,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -19,
+ -19
+ ],
+ "referencedDeclaration": -19,
+ "src": "16878:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 4025,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16878:27:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4026,
+ "nodeType": "ExpressionStatement",
+ "src": "16878:27:11"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 4031
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4031,
+ "mutability": "mutable",
+ "name": "newNodeMiddle",
+ "nameLocation": "16938:13:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4148,
+ "src": "16926:25:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 4030,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4029,
+ "name": "Node",
+ "nameLocations": [
+ "16926:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "16926:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "16926:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4032,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16926:25:11"
+ },
+ {
+ "assignments": [
+ 4034
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4034,
+ "mutability": "mutable",
+ "name": "newLeafBitAtDepth",
+ "nameLocation": "16966:17:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4148,
+ "src": "16961:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4033,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16961:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4044,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4041,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4038,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 4035,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4009,
+ "src": "16987:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4036,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16995:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "16987:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 4037,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4014,
+ "src": "17004:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16987:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 4039,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "16986:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17013:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "16986:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17018:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "16986:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16961:58:11"
+ },
+ {
+ "assignments": [
+ 4046
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4046,
+ "mutability": "mutable",
+ "name": "oldLeafBitAtDepth",
+ "nameLocation": "17034:17:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4148,
+ "src": "17029:22:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4045,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "17029:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4056,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 4047,
+ "name": "oldLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4012,
+ "src": "17055:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4048,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17063:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "17055:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 4049,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4014,
+ "src": "17072:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17055:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 4051,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "17054:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17081:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "17054:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17086:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "17054:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17029:58:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 4059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4057,
+ "name": "newLeafBitAtDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4034,
+ "src": "17173:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 4058,
+ "name": "oldLeafBitAtDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4046,
+ "src": "17194:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "17173:38:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4103,
+ "nodeType": "IfStatement",
+ "src": "17169:470:11",
+ "trueBody": {
+ "id": 4102,
+ "nodeType": "Block",
+ "src": "17213:426:11",
+ "statements": [
+ {
+ "assignments": [
+ 4061
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4061,
+ "mutability": "mutable",
+ "name": "nextNodeHash",
+ "nameLocation": "17235:12:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4102,
+ "src": "17227:20:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4060,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17227:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4070,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 4063,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4006,
+ "src": "17260:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 4064,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4009,
+ "src": "17266:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "id": 4065,
+ "name": "oldLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4012,
+ "src": "17275:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4066,
+ "name": "depth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4014,
+ "src": "17284:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17292:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "17284:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 4062,
+ "name": "_pushLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4149,
+ "src": "17250:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,struct SmtLib.Node memory,uint256) returns (uint256)"
+ }
+ },
+ "id": 4069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17250:44:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17227:67:11"
+ },
+ {
+ "condition": {
+ "id": 4071,
+ "name": "newLeafBitAtDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4034,
+ "src": "17313:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 4095,
+ "nodeType": "Block",
+ "src": "17459:120:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4084,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "17504:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 4086,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "17525:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4087,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "17534:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "17525:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "id": 4088,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4061,
+ "src": "17542:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 4089,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17556:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 4090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17559:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 4091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17562:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 4085,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "17520:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 4092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17520:44:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "17504:60:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4094,
+ "nodeType": "ExpressionStatement",
+ "src": "17504:60:11"
+ }
+ ]
+ },
+ "id": 4096,
+ "nodeType": "IfStatement",
+ "src": "17309:270:11",
+ "trueBody": {
+ "id": 4083,
+ "nodeType": "Block",
+ "src": "17332:121:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4072,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "17378:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 4074,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "17399:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "17408:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "17399:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 4076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17416:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "id": 4077,
+ "name": "nextNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4061,
+ "src": "17419:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 4078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17433:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 4079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17436:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 4073,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "17394:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 4080,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17394:44:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "17378:60:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4082,
+ "nodeType": "ExpressionStatement",
+ "src": "17378:60:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4098,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4006,
+ "src": "17608:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 4099,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "17614:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4097,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "17599:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 4100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17599:29:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4018,
+ "id": 4101,
+ "nodeType": "Return",
+ "src": "17592:36:11"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "id": 4104,
+ "name": "newLeafBitAtDepth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4034,
+ "src": "17653:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 4136,
+ "nodeType": "Block",
+ "src": "17935:257:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4121,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "17949:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 4123,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "17998:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "18007:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "17998:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 4126,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4009,
+ "src": "18055:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4125,
+ "name": "_getNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4307,
+ "src": "18042:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)"
+ }
+ },
+ "id": 4127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18042:21:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 4129,
+ "name": "oldLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4012,
+ "src": "18106:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4128,
+ "name": "_getNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4307,
+ "src": "18093:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)"
+ }
+ },
+ "id": 4130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18093:21:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 4131,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18139:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 4132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18165:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 4122,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "17965:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 4133,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "17988:8:11",
+ "18031:9:11",
+ "18081:10:11",
+ "18132:5:11",
+ "18158:5:11"
+ ],
+ "names": [
+ "nodeType",
+ "childLeft",
+ "childRight",
+ "index",
+ "value"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "17965:216:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "17949:232:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4135,
+ "nodeType": "ExpressionStatement",
+ "src": "17949:232:11"
+ }
+ ]
+ },
+ "id": 4137,
+ "nodeType": "IfStatement",
+ "src": "17649:543:11",
+ "trueBody": {
+ "id": 4120,
+ "nodeType": "Block",
+ "src": "17672:257:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4118,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4105,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "17686:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 4107,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "17735:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "17744:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "17735:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 4110,
+ "name": "oldLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4012,
+ "src": "17792:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4109,
+ "name": "_getNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4307,
+ "src": "17779:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)"
+ }
+ },
+ "id": 4111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17779:21:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 4113,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4009,
+ "src": "17843:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4112,
+ "name": "_getNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4307,
+ "src": "17830:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)"
+ }
+ },
+ "id": 4114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17830:21:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 4115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17876:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "30",
+ "id": 4116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17902:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 4106,
+ "name": "Node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3014,
+ "src": "17702:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$",
+ "typeString": "type(struct SmtLib.Node storage pointer)"
+ }
+ },
+ "id": 4117,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "17725:8:11",
+ "17768:9:11",
+ "17818:10:11",
+ "17869:5:11",
+ "17895:5:11"
+ ],
+ "names": [
+ "nodeType",
+ "childLeft",
+ "childRight",
+ "index",
+ "value"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "17702:216:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "17686:232:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4119,
+ "nodeType": "ExpressionStatement",
+ "src": "17686:232:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4139,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4006,
+ "src": "18211:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 4140,
+ "name": "newLeaf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4009,
+ "src": "18217:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4138,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "18202:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 4141,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18202:23:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4142,
+ "nodeType": "ExpressionStatement",
+ "src": "18202:23:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4144,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4006,
+ "src": "18251:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 4145,
+ "name": "newNodeMiddle",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4031,
+ "src": "18257:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4143,
+ "name": "_addNode",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4244,
+ "src": "18242:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)"
+ }
+ },
+ "id": 4146,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18242:29:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4018,
+ "id": 4147,
+ "nodeType": "Return",
+ "src": "18235:36:11"
+ }
+ ]
+ },
+ "id": 4149,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_pushLeaf",
+ "nameLocation": "16547:9:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4015,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4006,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "16579:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4149,
+ "src": "16566:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4005,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4004,
+ "name": "Data",
+ "nameLocations": [
+ "16566:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "16566:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "16566:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4009,
+ "mutability": "mutable",
+ "name": "newLeaf",
+ "nameLocation": "16605:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4149,
+ "src": "16593:19:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 4008,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4007,
+ "name": "Node",
+ "nameLocations": [
+ "16593:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "16593:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "16593:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4012,
+ "mutability": "mutable",
+ "name": "oldLeaf",
+ "nameLocation": "16634:7:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4149,
+ "src": "16622:19:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 4011,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4010,
+ "name": "Node",
+ "nameLocations": [
+ "16622:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "16622:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "16622:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4014,
+ "mutability": "mutable",
+ "name": "depth",
+ "nameLocation": "16659:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4149,
+ "src": "16651:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4013,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16651:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16556:114:11"
+ },
+ "returnParameters": {
+ "id": 4018,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4017,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4149,
+ "src": "16689:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4016,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16689:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16688:9:11"
+ },
+ "scope": 4449,
+ "src": "16538:1740:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4243,
+ "nodeType": "Block",
+ "src": "18366:785:11",
+ "statements": [
+ {
+ "assignments": [
+ 4161
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4161,
+ "mutability": "mutable",
+ "name": "nodeHash",
+ "nameLocation": "18384:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4243,
+ "src": "18376:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4160,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18376:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4165,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 4163,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "18408:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ ],
+ "id": 4162,
+ "name": "_getNodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4307,
+ "src": "18395:12:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)"
+ }
+ },
+ "id": 4164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18395:18:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "18376:37:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 4173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4166,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "18659:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4167,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18664:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "18659:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4169,
+ "indexExpression": {
+ "id": 4168,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "18670:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "18659:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4170,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18680:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "18659:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 4171,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "18692:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "18701:5:11",
+ "memberName": "EMPTY",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2933,
+ "src": "18692:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "18659:47:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4232,
+ "nodeType": "IfStatement",
+ "src": "18655:427:11",
+ "trueBody": {
+ "id": 4231,
+ "nodeType": "Block",
+ "src": "18708:374:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 4182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4175,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "18729:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4176,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18734:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "18729:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4178,
+ "indexExpression": {
+ "id": 4177,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "18740:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "18729:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4179,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18750:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "18729:29:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4180,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "18762:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4181,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18767:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "18762:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "18729:46:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4174,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "18722:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4183,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18722:54:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4184,
+ "nodeType": "ExpressionStatement",
+ "src": "18722:54:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4186,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "18797:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4187,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18802:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "18797:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4189,
+ "indexExpression": {
+ "id": 4188,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "18808:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "18797:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4190,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18818:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "18797:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4191,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "18831:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4192,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18836:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "18831:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18797:48:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4185,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "18790:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4194,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18790:56:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4195,
+ "nodeType": "ExpressionStatement",
+ "src": "18790:56:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4197,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "18867:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4198,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18872:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "18867:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4200,
+ "indexExpression": {
+ "id": 4199,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "18878:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "18867:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4201,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18888:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "18867:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4202,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "18902:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4203,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18907:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "18902:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18867:50:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4196,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "18860:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18860:58:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4206,
+ "nodeType": "ExpressionStatement",
+ "src": "18860:58:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4208,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "18939:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4209,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18944:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "18939:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4211,
+ "indexExpression": {
+ "id": 4210,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "18950:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "18939:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4212,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18960:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "18939:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4213,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "18969:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4214,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18974:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "18969:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18939:40:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4207,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "18932:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18932:48:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4217,
+ "nodeType": "ExpressionStatement",
+ "src": "18932:48:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4219,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "19001:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4220,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19006:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "19001:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4222,
+ "indexExpression": {
+ "id": 4221,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "19012:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "19001:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4223,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19022:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "19001:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4224,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "19031:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4225,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19036:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "19031:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19001:40:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4218,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "18994:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18994:48:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4228,
+ "nodeType": "ExpressionStatement",
+ "src": "18994:48:11"
+ },
+ {
+ "expression": {
+ "id": 4229,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "19063:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4159,
+ "id": 4230,
+ "nodeType": "Return",
+ "src": "19056:15:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 4239,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 4233,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4152,
+ "src": "19092:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4236,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19097:5:11",
+ "memberName": "nodes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2942,
+ "src": "19092:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$",
+ "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)"
+ }
+ },
+ "id": 4237,
+ "indexExpression": {
+ "id": 4235,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "19103:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "19092:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 4238,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4155,
+ "src": "19115:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "src": "19092:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage",
+ "typeString": "struct SmtLib.Node storage ref"
+ }
+ },
+ "id": 4240,
+ "nodeType": "ExpressionStatement",
+ "src": "19092:27:11"
+ },
+ {
+ "expression": {
+ "id": 4241,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4161,
+ "src": "19136:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4159,
+ "id": 4242,
+ "nodeType": "Return",
+ "src": "19129:15:11"
+ }
+ ]
+ },
+ "id": 4244,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addNode",
+ "nameLocation": "18293:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4156,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4152,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "18315:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4244,
+ "src": "18302:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4151,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4150,
+ "name": "Data",
+ "nameLocations": [
+ "18302:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "18302:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "18302:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4155,
+ "mutability": "mutable",
+ "name": "node",
+ "nameLocation": "18333:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4244,
+ "src": "18321:16:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 4154,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4153,
+ "name": "Node",
+ "nameLocations": [
+ "18321:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "18321:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "18321:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18301:37:11"
+ },
+ "returnParameters": {
+ "id": 4159,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4158,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4244,
+ "src": "18357:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18357:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18356:9:11"
+ },
+ "scope": 4449,
+ "src": "18284:867:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4306,
+ "nodeType": "Block",
+ "src": "19229:468:11",
+ "statements": [
+ {
+ "assignments": [
+ 4253
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4253,
+ "mutability": "mutable",
+ "name": "nodeHash",
+ "nameLocation": "19247:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4306,
+ "src": "19239:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4252,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19239:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4255,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 4254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19258:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19239:20:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 4260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 4256,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19273:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4257,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19278:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "19273:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4258,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "19290:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "19299:4:11",
+ "memberName": "LEAF",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2934,
+ "src": "19290:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "19273:30:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ },
+ "id": 4289,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 4285,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19459:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4286,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19464:8:11",
+ "memberName": "nodeType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3005,
+ "src": "19459:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4287,
+ "name": "NodeType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2936,
+ "src": "19476:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$",
+ "typeString": "type(enum SmtLib.NodeType)"
+ }
+ },
+ "id": 4288,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "19485:6:11",
+ "memberName": "MIDDLE",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2935,
+ "src": "19476:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_NodeType_$2936",
+ "typeString": "enum SmtLib.NodeType"
+ }
+ },
+ "src": "19459:32:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4302,
+ "nodeType": "IfStatement",
+ "src": "19455:132:11",
+ "trueBody": {
+ "id": 4301,
+ "nodeType": "Block",
+ "src": "19493:94:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4290,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4253,
+ "src": "19507:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "components": [
+ {
+ "expression": {
+ "id": 4293,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19543:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4294,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19548:9:11",
+ "memberName": "childLeft",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3007,
+ "src": "19543:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 4295,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19559:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4296,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19564:10:11",
+ "memberName": "childRight",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3009,
+ "src": "19559:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 4297,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "19542:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ ],
+ "expression": {
+ "id": 4291,
+ "name": "PoseidonUnit2L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2241,
+ "src": "19518:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit2L_$2241_$",
+ "typeString": "type(library PoseidonUnit2L)"
+ }
+ },
+ "id": 4292,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19533:8:11",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2240,
+ "src": "19518:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[2] memory) pure returns (uint256)"
+ }
+ },
+ "id": 4298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19518:58:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19507:69:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4300,
+ "nodeType": "ExpressionStatement",
+ "src": "19507:69:11"
+ }
+ ]
+ }
+ },
+ "id": 4303,
+ "nodeType": "IfStatement",
+ "src": "19269:318:11",
+ "trueBody": {
+ "id": 4284,
+ "nodeType": "Block",
+ "src": "19305:144:11",
+ "statements": [
+ {
+ "assignments": [
+ 4266
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4266,
+ "mutability": "mutable",
+ "name": "params",
+ "nameLocation": "19337:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4284,
+ "src": "19319:24:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 4264,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19319:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4265,
+ "length": {
+ "hexValue": "33",
+ "id": 4263,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19327:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "19319:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr",
+ "typeString": "uint256[3]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4276,
+ "initialValue": {
+ "components": [
+ {
+ "expression": {
+ "id": 4267,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19347:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4268,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19352:5:11",
+ "memberName": "index",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3011,
+ "src": "19347:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 4269,
+ "name": "node",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4247,
+ "src": "19359:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node memory"
+ }
+ },
+ "id": 4270,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19364:5:11",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3013,
+ "src": "19359:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "31",
+ "id": 4273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19379:1:11",
+ "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": 4272,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "19371:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 4271,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19371:7:11",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19371:10:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 4275,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "19346:36:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19319:63:11"
+ },
+ {
+ "expression": {
+ "id": 4282,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4277,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4253,
+ "src": "19396:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 4280,
+ "name": "params",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4266,
+ "src": "19431:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr",
+ "typeString": "uint256[3] memory"
+ }
+ ],
+ "expression": {
+ "id": 4278,
+ "name": "PoseidonUnit3L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2252,
+ "src": "19407:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$",
+ "typeString": "type(library PoseidonUnit3L)"
+ }
+ },
+ "id": 4279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19422:8:11",
+ "memberName": "poseidon",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2251,
+ "src": "19407:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[3] memory) pure returns (uint256)"
+ }
+ },
+ "id": 4281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19407:31:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19396:42:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4283,
+ "nodeType": "ExpressionStatement",
+ "src": "19396:42:11"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 4304,
+ "name": "nodeHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4253,
+ "src": "19603:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4251,
+ "id": 4305,
+ "nodeType": "Return",
+ "src": "19596:15:11"
+ }
+ ]
+ },
+ "id": 4307,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getNodeHash",
+ "nameLocation": "19166:12:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4248,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4247,
+ "mutability": "mutable",
+ "name": "node",
+ "nameLocation": "19191:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4307,
+ "src": "19179:16:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_memory_ptr",
+ "typeString": "struct SmtLib.Node"
+ },
+ "typeName": {
+ "id": 4246,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4245,
+ "name": "Node",
+ "nameLocations": [
+ "19179:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3014,
+ "src": "19179:4:11"
+ },
+ "referencedDeclaration": 3014,
+ "src": "19179:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Node_$3014_storage_ptr",
+ "typeString": "struct SmtLib.Node"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19178:18:11"
+ },
+ "returnParameters": {
+ "id": 4251,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4250,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4307,
+ "src": "19220:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4249,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19220:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19219:9:11"
+ },
+ "scope": 4449,
+ "src": "19157:540:11",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4375,
+ "nodeType": "Block",
+ "src": "19833:674:11",
+ "statements": [
+ {
+ "assignments": [
+ 4319
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4319,
+ "mutability": "mutable",
+ "name": "isLastRoot",
+ "nameLocation": "19848:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4375,
+ "src": "19843:15:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4318,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "19843:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4327,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4320,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4312,
+ "src": "19861:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 4321,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4310,
+ "src": "19870:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4322,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19875:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "19870:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19887:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "19870:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4324,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19896:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "19870:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19861:36:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19843:54:11"
+ },
+ {
+ "assignments": [
+ 4330
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4330,
+ "mutability": "mutable",
+ "name": "rootEntry",
+ "nameLocation": "19925:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4375,
+ "src": "19907:27:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry"
+ },
+ "typeName": {
+ "id": 4329,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4328,
+ "name": "RootEntry",
+ "nameLocations": [
+ "19907:9:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2987,
+ "src": "19907:9:11"
+ },
+ "referencedDeclaration": 2987,
+ "src": "19907:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4335,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 4331,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4310,
+ "src": "19937:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4332,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19942:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "19937:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4334,
+ "indexExpression": {
+ "id": 4333,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4312,
+ "src": "19954:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "19937:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19907:53:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 4337,
+ "name": "rootEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4330,
+ "src": "20028:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry storage pointer"
+ }
+ },
+ "id": 4338,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20038:4:11",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2982,
+ "src": "20028:14:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "condition": {
+ "id": 4339,
+ "name": "isLastRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4319,
+ "src": "20076:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4341,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4310,
+ "src": "20093:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4342,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20098:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "20093:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4346,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4343,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4312,
+ "src": "20110:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4344,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20118:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "20110:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "20093:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ "id": 4347,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20121:4:11",
+ "memberName": "root",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2982,
+ "src": "20093:32:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "20076:49:11",
+ "trueExpression": {
+ "hexValue": "30",
+ "id": 4340,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20089:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 4349,
+ "name": "rootEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4330,
+ "src": "20163:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry storage pointer"
+ }
+ },
+ "id": 4350,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20173:18:11",
+ "memberName": "createdAtTimestamp",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2984,
+ "src": "20163:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "condition": {
+ "id": 4351,
+ "name": "isLastRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4319,
+ "src": "20230:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4353,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4310,
+ "src": "20287:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4354,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20292:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "20287:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4358,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4355,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4312,
+ "src": "20304:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4356,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20312:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "20304:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "20287:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ "id": 4359,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20315:18:11",
+ "memberName": "createdAtTimestamp",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2984,
+ "src": "20287:46:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4360,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "20230:103:11",
+ "trueExpression": {
+ "hexValue": "30",
+ "id": 4352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20263:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 4361,
+ "name": "rootEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4330,
+ "src": "20367:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry storage pointer"
+ }
+ },
+ "id": 4362,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20377:14:11",
+ "memberName": "createdAtBlock",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2986,
+ "src": "20367:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "condition": {
+ "id": 4363,
+ "name": "isLastRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4319,
+ "src": "20426:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4365,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4310,
+ "src": "20443:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4366,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20448:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "20443:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4370,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4367,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4312,
+ "src": "20460:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20468:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "20460:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "20443:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ "id": 4371,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20471:14:11",
+ "memberName": "createdAtBlock",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2986,
+ "src": "20443:42:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "20426:59:11",
+ "trueExpression": {
+ "hexValue": "30",
+ "id": 4364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20439:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "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"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 4336,
+ "name": "RootEntryInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 3001,
+ "src": "19990:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_RootEntryInfo_$3001_storage_ptr_$",
+ "typeString": "type(struct SmtLib.RootEntryInfo storage pointer)"
+ }
+ },
+ "id": 4373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "20022:4:11",
+ "20060:14:11",
+ "20143:18:11",
+ "20209:19:11",
+ "20351:14:11",
+ "20409:15:11"
+ ],
+ "names": [
+ "root",
+ "replacedByRoot",
+ "createdAtTimestamp",
+ "replacedAtTimestamp",
+ "createdAtBlock",
+ "replacedAtBlock"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "19990:510:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "functionReturnParameters": 4317,
+ "id": 4374,
+ "nodeType": "Return",
+ "src": "19971:529:11"
+ }
+ ]
+ },
+ "id": 4376,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getRootInfoByIndex",
+ "nameLocation": "19712:19:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4310,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "19754:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4376,
+ "src": "19741:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4309,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4308,
+ "name": "Data",
+ "nameLocations": [
+ "19741:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "19741:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "19741:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4312,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "19776:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4376,
+ "src": "19768:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4311,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19768:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19731:56:11"
+ },
+ "returnParameters": {
+ "id": 4317,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4316,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4376,
+ "src": "19811:20:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 4315,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4314,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "19811:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "19811:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "19811:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19810:22:11"
+ },
+ "scope": 4449,
+ "src": "19703:804:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4409,
+ "nodeType": "Block",
+ "src": "20717:261:11",
+ "statements": [
+ {
+ "assignments": [
+ 4391,
+ 4393
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4391,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "20736:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4409,
+ "src": "20728:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4390,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20728:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4393,
+ "mutability": "mutable",
+ "name": "found",
+ "nameLocation": "20748:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4409,
+ "src": "20743:10:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4392,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "20743:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4399,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 4396,
+ "name": "timestampOrBlock",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4381,
+ "src": "20782:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 4397,
+ "name": "searchType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4384,
+ "src": "20800:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ ],
+ "expression": {
+ "id": 4394,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4379,
+ "src": "20757:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4395,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20762:19:11",
+ "memberName": "binarySearchUint256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4599,
+ "src": "20757:24:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$_t_bool_$attached_to$_t_struct$_Data_$2960_storage_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (uint256,bool)"
+ }
+ },
+ "id": 4398,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20757:54:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
+ "typeString": "tuple(uint256,bool)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20727:84:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4401,
+ "name": "found",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4393,
+ "src": "20915:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 4400,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "20908:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 4402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20908:13:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4403,
+ "nodeType": "ExpressionStatement",
+ "src": "20908:13:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4405,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4379,
+ "src": "20959:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ {
+ "id": 4406,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4391,
+ "src": "20965:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 4404,
+ "name": "_getRootInfoByIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4376,
+ "src": "20939:19:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$",
+ "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)"
+ }
+ },
+ "id": 4407,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20939:32:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo memory"
+ }
+ },
+ "functionReturnParameters": 4389,
+ "id": 4408,
+ "nodeType": "Return",
+ "src": "20932:39:11"
+ }
+ ]
+ },
+ "id": 4410,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getRootInfoByTimestampOrBlock",
+ "nameLocation": "20522:30:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4385,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4379,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "20575:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4410,
+ "src": "20562:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4378,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4377,
+ "name": "Data",
+ "nameLocations": [
+ "20562:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "20562:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "20562:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4381,
+ "mutability": "mutable",
+ "name": "timestampOrBlock",
+ "nameLocation": "20597:16:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4410,
+ "src": "20589:24:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4380,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20589:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4384,
+ "mutability": "mutable",
+ "name": "searchType",
+ "nameLocation": "20655:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4410,
+ "src": "20623:42:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ },
+ "typeName": {
+ "id": 4383,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4382,
+ "name": "BinarySearchSmtRoots.SearchType",
+ "nameLocations": [
+ "20623:20:11",
+ "20644:10:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4454,
+ "src": "20623:31:11"
+ },
+ "referencedDeclaration": 4454,
+ "src": "20623:31:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20552:119:11"
+ },
+ "returnParameters": {
+ "id": 4389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4388,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4410,
+ "src": "20695:20:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ },
+ "typeName": {
+ "id": 4387,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4386,
+ "name": "RootEntryInfo",
+ "nameLocations": [
+ "20695:13:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3001,
+ "src": "20695:13:11"
+ },
+ "referencedDeclaration": 3001,
+ "src": "20695:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr",
+ "typeString": "struct SmtLib.RootEntryInfo"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20694:22:11"
+ },
+ "scope": 4449,
+ "src": "20513:465:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4447,
+ "nodeType": "Block",
+ "src": "21119:208:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 4428,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4415,
+ "src": "21181:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 4429,
+ "name": "_timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4417,
+ "src": "21207:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 4430,
+ "name": "_block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4419,
+ "src": "21235:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 4427,
+ "name": "RootEntry",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2987,
+ "src": "21164:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_RootEntry_$2987_storage_ptr_$",
+ "typeString": "type(struct SmtLib.RootEntry storage pointer)"
+ }
+ },
+ "id": 4431,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "21175:4:11",
+ "21187:18:11",
+ "21219:14:11"
+ ],
+ "names": [
+ "root",
+ "createdAtTimestamp",
+ "createdAtBlock"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "21164:79:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr",
+ "typeString": "struct SmtLib.RootEntry memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr",
+ "typeString": "struct SmtLib.RootEntry memory"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 4422,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4413,
+ "src": "21129:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4425,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21134:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "21129:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21146:4:11",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "21129:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr_$_t_struct$_RootEntry_$2987_storage_$returns$__$attached_to$_t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr_$",
+ "typeString": "function (struct SmtLib.RootEntry storage ref[] storage pointer,struct SmtLib.RootEntry storage ref)"
+ }
+ },
+ "id": 4432,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21129:124:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4433,
+ "nodeType": "ExpressionStatement",
+ "src": "21129:124:11"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 4440,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4413,
+ "src": "21292:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4441,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21297:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "21292:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21309:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "21292:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21318:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "21292:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 4434,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4413,
+ "src": "21264:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4437,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21269:11:11",
+ "memberName": "rootIndexes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2951,
+ "src": "21264:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$",
+ "typeString": "mapping(uint256 => uint256[] storage ref)"
+ }
+ },
+ "id": 4438,
+ "indexExpression": {
+ "id": 4436,
+ "name": "root",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4415,
+ "src": "21281:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "21264:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
+ "typeString": "uint256[] storage ref"
+ }
+ },
+ "id": 4439,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21287:4:11",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "21264:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
+ "typeString": "function (uint256[] storage pointer,uint256)"
+ }
+ },
+ "id": 4445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21264:56:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4446,
+ "nodeType": "ExpressionStatement",
+ "src": "21264:56:11"
+ }
+ ]
+ },
+ "id": 4448,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addEntry",
+ "nameLocation": "20993:9:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4420,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4413,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "21025:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4448,
+ "src": "21012:17:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4412,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4411,
+ "name": "Data",
+ "nameLocations": [
+ "21012:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "21012:4:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "21012:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4415,
+ "mutability": "mutable",
+ "name": "root",
+ "nameLocation": "21047:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4448,
+ "src": "21039:12:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4414,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21039:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4417,
+ "mutability": "mutable",
+ "name": "_timestamp",
+ "nameLocation": "21069:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4448,
+ "src": "21061:18:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4416,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21061:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4419,
+ "mutability": "mutable",
+ "name": "_block",
+ "nameLocation": "21097:6:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4448,
+ "src": "21089:14:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4418,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21089:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21002:107:11"
+ },
+ "returnParameters": {
+ "id": 4421,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21119:0:11"
+ },
+ "scope": 4449,
+ "src": "20984:343:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 4637,
+ "src": "688:20641:11",
+ "usedErrors": [],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "BinarySearchSmtRoots",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 4450,
+ "nodeType": "StructuredDocumentation",
+ "src": "21331:67:11",
+ "text": "@title A binary search for the sparse merkle tree root history"
+ },
+ "fullyImplemented": true,
+ "id": 4636,
+ "linearizedBaseContracts": [
+ 4636
+ ],
+ "name": "BinarySearchSmtRoots",
+ "nameLocation": "21464:20:11",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "BinarySearchSmtRoots.SearchType",
+ "documentation": {
+ "id": 4451,
+ "nodeType": "StructuredDocumentation",
+ "src": "21491:64:11",
+ "text": " @dev Enum for the SMT history field selection"
+ },
+ "id": 4454,
+ "members": [
+ {
+ "id": 4452,
+ "name": "TIMESTAMP",
+ "nameLocation": "21586:9:11",
+ "nodeType": "EnumValue",
+ "src": "21586:9:11"
+ },
+ {
+ "id": 4453,
+ "name": "BLOCK",
+ "nameLocation": "21605:5:11",
+ "nodeType": "EnumValue",
+ "src": "21605:5:11"
+ }
+ ],
+ "name": "SearchType",
+ "nameLocation": "21565:10:11",
+ "nodeType": "EnumDefinition",
+ "src": "21560:56:11"
+ },
+ {
+ "body": {
+ "id": 4598,
+ "nodeType": "Block",
+ "src": "22073:1367:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 4470,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4458,
+ "src": "22087:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4471,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22092:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "22087:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22104:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "22087:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 4473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22114:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "22087:28:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4480,
+ "nodeType": "IfStatement",
+ "src": "22083:76:11",
+ "trueBody": {
+ "id": 4479,
+ "nodeType": "Block",
+ "src": "22117:42:11",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "30",
+ "id": 4475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22139:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 4476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22142:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ }
+ ],
+ "id": 4477,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22138:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$",
+ "typeString": "tuple(int_const 0,bool)"
+ }
+ },
+ "functionReturnParameters": 4469,
+ "id": 4478,
+ "nodeType": "Return",
+ "src": "22131:17:11"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 4482
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4482,
+ "mutability": "mutable",
+ "name": "min",
+ "nameLocation": "22177:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4598,
+ "src": "22169:11:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4481,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22169:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4484,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 4483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22183:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22169:15:11"
+ },
+ {
+ "assignments": [
+ 4486
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4486,
+ "mutability": "mutable",
+ "name": "max",
+ "nameLocation": "22202:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4598,
+ "src": "22194:11:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4485,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22194:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4492,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4491,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 4487,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4458,
+ "src": "22208:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4488,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22213:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "22208:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4489,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22225:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "22208:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4490,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22234:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22208:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22194:41:11"
+ },
+ {
+ "assignments": [
+ 4494
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4494,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "22253:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4598,
+ "src": "22245:11:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4493,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22245:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4495,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22245:11:11"
+ },
+ {
+ "body": {
+ "id": 4592,
+ "nodeType": "Block",
+ "src": "22286:909:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4499,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22300:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4505,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4500,
+ "name": "max",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4486,
+ "src": "22307:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 4501,
+ "name": "min",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4482,
+ "src": "22313:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22307:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 4503,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22306:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 4504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22320:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "22306:15:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22300:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4507,
+ "nodeType": "ExpressionStatement",
+ "src": "22300:21:11"
+ },
+ {
+ "assignments": [
+ 4509
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4509,
+ "mutability": "mutable",
+ "name": "midValue",
+ "nameLocation": "22344:8:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4592,
+ "src": "22336:16:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4508,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22336:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4517,
+ "initialValue": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 4511,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4458,
+ "src": "22369:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4512,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22374:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "22369:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4514,
+ "indexExpression": {
+ "id": 4513,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22386:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "22369:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ {
+ "id": 4515,
+ "name": "searchType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4463,
+ "src": "22392:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ },
+ {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ ],
+ "id": 4510,
+ "name": "fieldSelector",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4635,
+ "src": "22355:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_RootEntry_$2987_memory_ptr_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.RootEntry memory,enum BinarySearchSmtRoots.SearchType) pure returns (uint256)"
+ }
+ },
+ "id": 4516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22355:48:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22336:67:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4520,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4518,
+ "name": "midValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4509,
+ "src": "22421:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 4519,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4460,
+ "src": "22433:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22421:17:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4560,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4460,
+ "src": "22845:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 4561,
+ "name": "midValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4509,
+ "src": "22853:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22845:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 4576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4572,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4570,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4460,
+ "src": "22919:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 4571,
+ "name": "midValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4509,
+ "src": "22927:8:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22919:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4573,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22939:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 4574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22945:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "22939:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "22919:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 4588,
+ "nodeType": "Block",
+ "src": "23049:136:11",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "30",
+ "id": 4584,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23161:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 4585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23164:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ }
+ ],
+ "id": 4586,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "23160:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$",
+ "typeString": "tuple(int_const 0,bool)"
+ }
+ },
+ "functionReturnParameters": 4469,
+ "id": 4587,
+ "nodeType": "Return",
+ "src": "23153:17:11"
+ }
+ ]
+ },
+ "id": 4589,
+ "nodeType": "IfStatement",
+ "src": "22915:270:11",
+ "trueBody": {
+ "id": 4583,
+ "nodeType": "Block",
+ "src": "22948:95:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4581,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4577,
+ "name": "max",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4486,
+ "src": "23015:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4578,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "23021:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23027:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "23021:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "23015:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4582,
+ "nodeType": "ExpressionStatement",
+ "src": "23015:13:11"
+ }
+ ]
+ }
+ },
+ "id": 4590,
+ "nodeType": "IfStatement",
+ "src": "22841:344:11",
+ "trueBody": {
+ "id": 4569,
+ "nodeType": "Block",
+ "src": "22863:46:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 4563,
+ "name": "min",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4482,
+ "src": "22881:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4564,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22887:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22893:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22887:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22881:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4568,
+ "nodeType": "ExpressionStatement",
+ "src": "22881:13:11"
+ }
+ ]
+ }
+ },
+ "id": 4591,
+ "nodeType": "IfStatement",
+ "src": "22417:768:11",
+ "trueBody": {
+ "id": 4559,
+ "nodeType": "Block",
+ "src": "22440:395:11",
+ "statements": [
+ {
+ "body": {
+ "id": 4553,
+ "nodeType": "Block",
+ "src": "22500:285:11",
+ "statements": [
+ {
+ "assignments": [
+ 4529
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4529,
+ "mutability": "mutable",
+ "name": "nextValue",
+ "nameLocation": "22530:9:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4553,
+ "src": "22522:17:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4528,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22522:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4539,
+ "initialValue": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 4531,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4458,
+ "src": "22556:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4532,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22561:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "22556:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4536,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4535,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4533,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22573:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22579:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22573:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "22556:25:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ }
+ },
+ {
+ "id": 4537,
+ "name": "searchType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4463,
+ "src": "22583:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref"
+ },
+ {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ ],
+ "id": 4530,
+ "name": "fieldSelector",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4635,
+ "src": "22542:13:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_RootEntry_$2987_memory_ptr_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$",
+ "typeString": "function (struct SmtLib.RootEntry memory,enum BinarySearchSmtRoots.SearchType) pure returns (uint256)"
+ }
+ },
+ "id": 4538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22542:52:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22522:72:11"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4540,
+ "name": "nextValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4529,
+ "src": "22620:9:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 4541,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4460,
+ "src": "22633:5:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22620:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 4551,
+ "nodeType": "Block",
+ "src": "22700:67:11",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 4547,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22734:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 4548,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22739:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "id": 4549,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22733:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
+ "typeString": "tuple(uint256,bool)"
+ }
+ },
+ "functionReturnParameters": 4469,
+ "id": 4550,
+ "nodeType": "Return",
+ "src": "22726:18:11"
+ }
+ ]
+ },
+ "id": 4552,
+ "nodeType": "IfStatement",
+ "src": "22616:151:11",
+ "trueBody": {
+ "id": 4546,
+ "nodeType": "Block",
+ "src": "22640:54:11",
+ "statements": [
+ {
+ "expression": {
+ "id": 4544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "22666:5:11",
+ "subExpression": {
+ "id": 4543,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22666:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 4545,
+ "nodeType": "ExpressionStatement",
+ "src": "22666:5:11"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4527,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4521,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22465:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4526,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 4522,
+ "name": "self",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4458,
+ "src": "22471:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data storage pointer"
+ }
+ },
+ "id": 4523,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22476:11:11",
+ "memberName": "rootEntries",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2946,
+ "src": "22471:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage",
+ "typeString": "struct SmtLib.RootEntry storage ref[] storage ref"
+ }
+ },
+ "id": 4524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22488:6:11",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "22471:23:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 4525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22497:1:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22471:27:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22465:33:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4554,
+ "nodeType": "WhileStatement",
+ "src": "22458:327:11"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 4555,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4494,
+ "src": "22810:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 4556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22815:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "id": 4557,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22809:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
+ "typeString": "tuple(uint256,bool)"
+ }
+ },
+ "functionReturnParameters": 4469,
+ "id": 4558,
+ "nodeType": "Return",
+ "src": "22802:18:11"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 4498,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4496,
+ "name": "min",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4482,
+ "src": "22274:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 4497,
+ "name": "max",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4486,
+ "src": "22281:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22274:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4593,
+ "nodeType": "WhileStatement",
+ "src": "22267:928:11"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 4594,
+ "name": "max",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4486,
+ "src": "23423:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 4595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23428:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "id": 4596,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "23422:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
+ "typeString": "tuple(uint256,bool)"
+ }
+ },
+ "functionReturnParameters": 4469,
+ "id": 4597,
+ "nodeType": "Return",
+ "src": "23415:18:11"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4455,
+ "nodeType": "StructuredDocumentation",
+ "src": "21622:285:11",
+ "text": " @dev Binary search method for the SMT history,\n which searches for the index of the root entry saved by the given timestamp or block\n @param value The timestamp or block to search for.\n @param searchType The type of the search (timestamp or block)."
+ },
+ "id": 4599,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "binarySearchUint256",
+ "nameLocation": "21921:19:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4458,
+ "mutability": "mutable",
+ "name": "self",
+ "nameLocation": "21970:4:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4599,
+ "src": "21950:24:11",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ },
+ "typeName": {
+ "id": 4457,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4456,
+ "name": "SmtLib.Data",
+ "nameLocations": [
+ "21950:6:11",
+ "21957:4:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2960,
+ "src": "21950:11:11"
+ },
+ "referencedDeclaration": 2960,
+ "src": "21950:11:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$2960_storage_ptr",
+ "typeString": "struct SmtLib.Data"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4460,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "21992:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4599,
+ "src": "21984:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4459,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21984:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4463,
+ "mutability": "mutable",
+ "name": "searchType",
+ "nameLocation": "22018:10:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4599,
+ "src": "22007:21:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ },
+ "typeName": {
+ "id": 4462,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4461,
+ "name": "SearchType",
+ "nameLocations": [
+ "22007:10:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4454,
+ "src": "22007:10:11"
+ },
+ "referencedDeclaration": 4454,
+ "src": "22007:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21940:94:11"
+ },
+ "returnParameters": {
+ "id": 4469,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4466,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4599,
+ "src": "22058:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4465,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22058:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4468,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4599,
+ "src": "22067:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4467,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "22067:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22057:15:11"
+ },
+ "scope": 4636,
+ "src": "21912:1528:11",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4634,
+ "nodeType": "Block",
+ "src": "23791:246:11",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ },
+ "id": 4614,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4611,
+ "name": "st",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4606,
+ "src": "23805:2:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4612,
+ "name": "SearchType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4454,
+ "src": "23811:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$",
+ "typeString": "type(enum BinarySearchSmtRoots.SearchType)"
+ }
+ },
+ "id": 4613,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "23822:5:11",
+ "memberName": "BLOCK",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4453,
+ "src": "23811:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "src": "23805:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ },
+ "id": 4622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4619,
+ "name": "st",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4606,
+ "src": "23889:2:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 4620,
+ "name": "SearchType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4454,
+ "src": "23895:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$",
+ "typeString": "type(enum BinarySearchSmtRoots.SearchType)"
+ }
+ },
+ "id": 4621,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "23906:9:11",
+ "memberName": "TIMESTAMP",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4452,
+ "src": "23895:20:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "src": "23889:26:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 4631,
+ "nodeType": "Block",
+ "src": "23977:54:11",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "496e76616c6964207365617263682074797065",
+ "id": 4628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23998:21:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935",
+ "typeString": "literal_string \"Invalid search type\""
+ },
+ "value": "Invalid search type"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935",
+ "typeString": "literal_string \"Invalid search type\""
+ }
+ ],
+ "id": 4627,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -19,
+ -19
+ ],
+ "referencedDeclaration": -19,
+ "src": "23991:6:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 4629,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23991:29:11",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4630,
+ "nodeType": "ExpressionStatement",
+ "src": "23991:29:11"
+ }
+ ]
+ },
+ "id": 4632,
+ "nodeType": "IfStatement",
+ "src": "23885:146:11",
+ "trueBody": {
+ "id": 4626,
+ "nodeType": "Block",
+ "src": "23917:54:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 4623,
+ "name": "rti",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4603,
+ "src": "23938:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr",
+ "typeString": "struct SmtLib.RootEntry memory"
+ }
+ },
+ "id": 4624,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23942:18:11",
+ "memberName": "createdAtTimestamp",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2984,
+ "src": "23938:22:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4610,
+ "id": 4625,
+ "nodeType": "Return",
+ "src": "23931:29:11"
+ }
+ ]
+ }
+ },
+ "id": 4633,
+ "nodeType": "IfStatement",
+ "src": "23801:230:11",
+ "trueBody": {
+ "id": 4618,
+ "nodeType": "Block",
+ "src": "23829:50:11",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 4615,
+ "name": "rti",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4603,
+ "src": "23850:3:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr",
+ "typeString": "struct SmtLib.RootEntry memory"
+ }
+ },
+ "id": 4616,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23854:14:11",
+ "memberName": "createdAtBlock",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2986,
+ "src": "23850:18:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 4610,
+ "id": 4617,
+ "nodeType": "Return",
+ "src": "23843:25:11"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4600,
+ "nodeType": "StructuredDocumentation",
+ "src": "23446:219:11",
+ "text": " @dev Selects either timestamp or block field from the root entry struct\n depending on the search type\n @param rti The root entry to select the field from.\n @param st The search type."
+ },
+ "id": 4635,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "fieldSelector",
+ "nameLocation": "23679:13:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4607,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4603,
+ "mutability": "mutable",
+ "name": "rti",
+ "nameLocation": "23726:3:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4635,
+ "src": "23702:27:11",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr",
+ "typeString": "struct SmtLib.RootEntry"
+ },
+ "typeName": {
+ "id": 4602,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4601,
+ "name": "SmtLib.RootEntry",
+ "nameLocations": [
+ "23702:6:11",
+ "23709:9:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2987,
+ "src": "23702:16:11"
+ },
+ "referencedDeclaration": 2987,
+ "src": "23702:16:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr",
+ "typeString": "struct SmtLib.RootEntry"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4606,
+ "mutability": "mutable",
+ "name": "st",
+ "nameLocation": "23750:2:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 4635,
+ "src": "23739:13:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ },
+ "typeName": {
+ "id": 4605,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4604,
+ "name": "SearchType",
+ "nameLocations": [
+ "23739:10:11"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4454,
+ "src": "23739:10:11"
+ },
+ "referencedDeclaration": 4454,
+ "src": "23739:10:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_SearchType_$4454",
+ "typeString": "enum BinarySearchSmtRoots.SearchType"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23692:66:11"
+ },
+ "returnParameters": {
+ "id": 4610,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4609,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4635,
+ "src": "23782:7:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 4608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23782:7:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23781:9:11"
+ },
+ "scope": 4636,
+ "src": "23670:367:11",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 4637,
+ "src": "21456:2583:11",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:24004:11"
+ },
+ "id": 11
+ },
+ "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol",
+ "exportedSymbols": {
+ "Initializable": [
+ 5236
+ ],
+ "Ownable2StepUpgradeable": [
+ 4773
+ ],
+ "OwnableUpgradeable": [
+ 4968
+ ]
+ },
+ "id": 4774,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 4638,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "107:24:12"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
+ "file": "./OwnableUpgradeable.sol",
+ "id": 4640,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4774,
+ "sourceUnit": 4969,
+ "src": "133:60:12",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 4639,
+ "name": "OwnableUpgradeable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4968,
+ "src": "141:18:12",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
+ "file": "../proxy/utils/Initializable.sol",
+ "id": 4642,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4774,
+ "sourceUnit": 5237,
+ "src": "194:63:12",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 4641,
+ "name": "Initializable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5236,
+ "src": "202:13:12",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 4644,
+ "name": "Initializable",
+ "nameLocations": [
+ "1115:13:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5236,
+ "src": "1115:13:12"
+ },
+ "id": 4645,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1115:13:12"
+ },
+ {
+ "baseName": {
+ "id": 4646,
+ "name": "OwnableUpgradeable",
+ "nameLocations": [
+ "1130:18:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4968,
+ "src": "1130:18:12"
+ },
+ "id": 4647,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1130:18:12"
+ }
+ ],
+ "canonicalName": "Ownable2StepUpgradeable",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 4643,
+ "nodeType": "StructuredDocumentation",
+ "src": "259:810:12",
+ "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\n The initial owner is specified at deployment time in the constructor for `Ownable`. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."
+ },
+ "fullyImplemented": true,
+ "id": 4773,
+ "linearizedBaseContracts": [
+ 4773,
+ 4968,
+ 5282,
+ 5236
+ ],
+ "name": "Ownable2StepUpgradeable",
+ "nameLocation": "1088:23:12",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "Ownable2StepUpgradeable.Ownable2StepStorage",
+ "documentation": {
+ "id": 4648,
+ "nodeType": "StructuredDocumentation",
+ "src": "1155:70:12",
+ "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step"
+ },
+ "id": 4651,
+ "members": [
+ {
+ "constant": false,
+ "id": 4650,
+ "mutability": "mutable",
+ "name": "_pendingOwner",
+ "nameLocation": "1275:13:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4651,
+ "src": "1267:21:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4649,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1267:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Ownable2StepStorage",
+ "nameLocation": "1237:19:12",
+ "nodeType": "StructDefinition",
+ "scope": 4773,
+ "src": "1230:65:12",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 4654,
+ "mutability": "constant",
+ "name": "Ownable2StepStorageLocation",
+ "nameLocation": "1442:27:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4773,
+ "src": "1417:121:12",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 4652,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1417:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307832333765313538323232653365363936386237326239646230643830343361616366303734616439663635306630643136303662346438326565343332633030",
+ "id": 4653,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1472:66:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16053720875717120191110171845200109550086765943194951757191984851604933389312_by_1",
+ "typeString": "int_const 1605...(69 digits omitted)...9312"
+ },
+ "value": "0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 4661,
+ "nodeType": "Block",
+ "src": "1633:86:12",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1652:61:12",
+ "nodeType": "YulBlock",
+ "src": "1652:61:12",
+ "statements": [
+ {
+ "nativeSrc": "1666:37:12",
+ "nodeType": "YulAssignment",
+ "src": "1666:37:12",
+ "value": {
+ "name": "Ownable2StepStorageLocation",
+ "nativeSrc": "1676:27:12",
+ "nodeType": "YulIdentifier",
+ "src": "1676:27:12"
+ },
+ "variableNames": [
+ {
+ "name": "$.slot",
+ "nativeSrc": "1666:6:12",
+ "nodeType": "YulIdentifier",
+ "src": "1666:6:12"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 4658,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "1666:6:12",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 4654,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1676:27:12",
+ "valueSize": 1
+ }
+ ],
+ "id": 4660,
+ "nodeType": "InlineAssembly",
+ "src": "1643:70:12"
+ }
+ ]
+ },
+ "id": 4662,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getOwnable2StepStorage",
+ "nameLocation": "1554:23:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4655,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1577:2:12"
+ },
+ "returnParameters": {
+ "id": 4659,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4658,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "1630:1:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4662,
+ "src": "1602:29:12",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ },
+ "typeName": {
+ "id": 4657,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4656,
+ "name": "Ownable2StepStorage",
+ "nameLocations": [
+ "1602:19:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4651,
+ "src": "1602:19:12"
+ },
+ "referencedDeclaration": 4651,
+ "src": "1602:19:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1601:31:12"
+ },
+ "scope": 4773,
+ "src": "1545:174:12",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700",
+ "id": 4668,
+ "name": "OwnershipTransferStarted",
+ "nameLocation": "1731:24:12",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 4667,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4664,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "previousOwner",
+ "nameLocation": "1772:13:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4668,
+ "src": "1756:29:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4663,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1756:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4666,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "1803:8:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4668,
+ "src": "1787:24:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4665,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1787:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1755:57:12"
+ },
+ "src": "1725:88:12"
+ },
+ {
+ "body": {
+ "id": 4673,
+ "nodeType": "Block",
+ "src": "1876:7:12",
+ "statements": []
+ },
+ "id": 4674,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4671,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4670,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "1859:16:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "1859:16:12"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "1859:16:12"
+ }
+ ],
+ "name": "__Ownable2Step_init",
+ "nameLocation": "1828:19:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4669,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1847:2:12"
+ },
+ "returnParameters": {
+ "id": 4672,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1876:0:12"
+ },
+ "scope": 4773,
+ "src": "1819:64:12",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4679,
+ "nodeType": "Block",
+ "src": "1956:7:12",
+ "statements": []
+ },
+ "id": 4680,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4677,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4676,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "1939:16:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "1939:16:12"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "1939:16:12"
+ }
+ ],
+ "name": "__Ownable2Step_init_unchained",
+ "nameLocation": "1898:29:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4675,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1927:2:12"
+ },
+ "returnParameters": {
+ "id": 4678,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1956:0:12"
+ },
+ "scope": 4773,
+ "src": "1889:74:12",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4695,
+ "nodeType": "Block",
+ "src": "2100:106:12",
+ "statements": [
+ {
+ "assignments": [
+ 4688
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4688,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "2138:1:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4695,
+ "src": "2110:29:12",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ },
+ "typeName": {
+ "id": 4687,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4686,
+ "name": "Ownable2StepStorage",
+ "nameLocations": [
+ "2110:19:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4651,
+ "src": "2110:19:12"
+ },
+ "referencedDeclaration": 4651,
+ "src": "2110:19:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4691,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4689,
+ "name": "_getOwnable2StepStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4662,
+ "src": "2142:23:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$",
+ "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"
+ }
+ },
+ "id": 4690,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2142:25:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2110:57:12"
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 4692,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4688,
+ "src": "2184:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "id": 4693,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2186:13:12",
+ "memberName": "_pendingOwner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4650,
+ "src": "2184:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 4685,
+ "id": 4694,
+ "nodeType": "Return",
+ "src": "2177:22:12"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4681,
+ "nodeType": "StructuredDocumentation",
+ "src": "1968:65:12",
+ "text": " @dev Returns the address of the pending owner."
+ },
+ "functionSelector": "e30c3978",
+ "id": 4696,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "pendingOwner",
+ "nameLocation": "2047:12:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4682,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2059:2:12"
+ },
+ "returnParameters": {
+ "id": 4685,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4684,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4696,
+ "src": "2091:7:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4683,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2091:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2090:9:12"
+ },
+ "scope": 4773,
+ "src": "2038:168:12",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 4938
+ ],
+ "body": {
+ "id": 4723,
+ "nodeType": "Block",
+ "src": "2603:168:12",
+ "statements": [
+ {
+ "assignments": [
+ 4707
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4707,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "2641:1:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4723,
+ "src": "2613:29:12",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ },
+ "typeName": {
+ "id": 4706,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4705,
+ "name": "Ownable2StepStorage",
+ "nameLocations": [
+ "2613:19:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4651,
+ "src": "2613:19:12"
+ },
+ "referencedDeclaration": 4651,
+ "src": "2613:19:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4710,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4708,
+ "name": "_getOwnable2StepStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4662,
+ "src": "2645:23:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$",
+ "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"
+ }
+ },
+ "id": 4709,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2645:25:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2613:57:12"
+ },
+ {
+ "expression": {
+ "id": 4715,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 4711,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4707,
+ "src": "2680:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "id": 4713,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "2682:13:12",
+ "memberName": "_pendingOwner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4650,
+ "src": "2680:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 4714,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4699,
+ "src": "2698:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2680:26:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 4716,
+ "nodeType": "ExpressionStatement",
+ "src": "2680:26:12"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4718,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4879,
+ "src": "2746:5:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2746:7:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 4720,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4699,
+ "src": "2755:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4717,
+ "name": "OwnershipTransferStarted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4668,
+ "src": "2721:24:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address)"
+ }
+ },
+ "id": 4721,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2721:43:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4722,
+ "nodeType": "EmitStatement",
+ "src": "2716:48:12"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4697,
+ "nodeType": "StructuredDocumentation",
+ "src": "2212:307:12",
+ "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."
+ },
+ "functionSelector": "f2fde38b",
+ "id": 4724,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4703,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4702,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "2593:9:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "2593:9:12"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "2593:9:12"
+ }
+ ],
+ "name": "transferOwnership",
+ "nameLocation": "2533:17:12",
+ "nodeType": "FunctionDefinition",
+ "overrides": {
+ "id": 4701,
+ "nodeType": "OverrideSpecifier",
+ "overrides": [],
+ "src": "2584:8:12"
+ },
+ "parameters": {
+ "id": 4700,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4699,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "2559:8:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4724,
+ "src": "2551:16:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4698,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2551:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2550:18:12"
+ },
+ "returnParameters": {
+ "id": 4704,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2603:0:12"
+ },
+ "scope": 4773,
+ "src": "2524:247:12",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 4967
+ ],
+ "body": {
+ "id": 4747,
+ "nodeType": "Block",
+ "src": "3027:150:12",
+ "statements": [
+ {
+ "assignments": [
+ 4733
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4733,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "3065:1:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4747,
+ "src": "3037:29:12",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ },
+ "typeName": {
+ "id": 4732,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4731,
+ "name": "Ownable2StepStorage",
+ "nameLocations": [
+ "3037:19:12"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4651,
+ "src": "3037:19:12"
+ },
+ "referencedDeclaration": 4651,
+ "src": "3037:19:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4736,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4734,
+ "name": "_getOwnable2StepStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4662,
+ "src": "3069:23:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$",
+ "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"
+ }
+ },
+ "id": 4735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3069:25:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3037:57:12"
+ },
+ {
+ "expression": {
+ "id": 4739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "delete",
+ "prefix": true,
+ "src": "3104:22:12",
+ "subExpression": {
+ "expression": {
+ "id": 4737,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4733,
+ "src": "3111:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr",
+ "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"
+ }
+ },
+ "id": 4738,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3113:13:12",
+ "memberName": "_pendingOwner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4650,
+ "src": "3111:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4740,
+ "nodeType": "ExpressionStatement",
+ "src": "3104:22:12"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4744,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4727,
+ "src": "3161:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 4741,
+ "name": "super",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -25,
+ "src": "3136:5:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$4773_$",
+ "typeString": "type(contract super Ownable2StepUpgradeable)"
+ }
+ },
+ "id": 4743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3142:18:12",
+ "memberName": "_transferOwnership",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4967,
+ "src": "3136:24:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4745,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3136:34:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4746,
+ "nodeType": "ExpressionStatement",
+ "src": "3136:34:12"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4725,
+ "nodeType": "StructuredDocumentation",
+ "src": "2777:173:12",
+ "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."
+ },
+ "id": 4748,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_transferOwnership",
+ "nameLocation": "2964:18:12",
+ "nodeType": "FunctionDefinition",
+ "overrides": {
+ "id": 4729,
+ "nodeType": "OverrideSpecifier",
+ "overrides": [],
+ "src": "3018:8:12"
+ },
+ "parameters": {
+ "id": 4728,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4727,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "2991:8:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4748,
+ "src": "2983:16:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4726,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2983:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2982:18:12"
+ },
+ "returnParameters": {
+ "id": 4730,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3027:0:12"
+ },
+ "scope": 4773,
+ "src": "2955:222:12",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4771,
+ "nodeType": "Block",
+ "src": "3299:187:12",
+ "statements": [
+ {
+ "assignments": [
+ 4753
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4753,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3317:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 4771,
+ "src": "3309:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4752,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3309:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4756,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4754,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5264,
+ "src": "3326:10:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3326:12:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3309:29:12"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 4760,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4757,
+ "name": "pendingOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4696,
+ "src": "3352:12:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3352:14:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 4759,
+ "name": "sender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4753,
+ "src": "3370:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3352:24:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4766,
+ "nodeType": "IfStatement",
+ "src": "3348:96:12",
+ "trueBody": {
+ "id": 4765,
+ "nodeType": "Block",
+ "src": "3378:66:12",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 4762,
+ "name": "sender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4753,
+ "src": "3426:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4761,
+ "name": "OwnableUnauthorizedAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4804,
+ "src": "3399:26:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 4763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3399:34:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 4764,
+ "nodeType": "RevertStatement",
+ "src": "3392:41:12"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4768,
+ "name": "sender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4753,
+ "src": "3472:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4767,
+ "name": "_transferOwnership",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4748
+ ],
+ "referencedDeclaration": 4748,
+ "src": "3453:18:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3453:26:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4770,
+ "nodeType": "ExpressionStatement",
+ "src": "3453:26:12"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4749,
+ "nodeType": "StructuredDocumentation",
+ "src": "3183:69:12",
+ "text": " @dev The new owner accepts the ownership transfer."
+ },
+ "functionSelector": "79ba5097",
+ "id": 4772,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "acceptOwnership",
+ "nameLocation": "3266:15:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3281:2:12"
+ },
+ "returnParameters": {
+ "id": 4751,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3299:0:12"
+ },
+ "scope": 4773,
+ "src": "3257:229:12",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ }
+ ],
+ "scope": 4774,
+ "src": "1070:2418:12",
+ "usedErrors": [
+ 4804,
+ 4809,
+ 4985,
+ 4988
+ ],
+ "usedEvents": [
+ 4668,
+ 4815,
+ 4993
+ ]
+ }
+ ],
+ "src": "107:3382:12"
+ },
+ "id": 12
+ },
+ "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
+ "exportedSymbols": {
+ "ContextUpgradeable": [
+ 5282
+ ],
+ "Initializable": [
+ 5236
+ ],
+ "OwnableUpgradeable": [
+ 4968
+ ]
+ },
+ "id": 4969,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 4775,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "102:24:13"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
+ "file": "../utils/ContextUpgradeable.sol",
+ "id": 4777,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4969,
+ "sourceUnit": 5283,
+ "src": "128:67:13",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 4776,
+ "name": "ContextUpgradeable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5282,
+ "src": "136:18:13",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
+ "file": "../proxy/utils/Initializable.sol",
+ "id": 4779,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 4969,
+ "sourceUnit": 5237,
+ "src": "196:63:13",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 4778,
+ "name": "Initializable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5236,
+ "src": "204:13:13",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 4781,
+ "name": "Initializable",
+ "nameLocations": [
+ "789:13:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5236,
+ "src": "789:13:13"
+ },
+ "id": 4782,
+ "nodeType": "InheritanceSpecifier",
+ "src": "789:13:13"
+ },
+ {
+ "baseName": {
+ "id": 4783,
+ "name": "ContextUpgradeable",
+ "nameLocations": [
+ "804:18:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5282,
+ "src": "804:18:13"
+ },
+ "id": 4784,
+ "nodeType": "InheritanceSpecifier",
+ "src": "804:18:13"
+ }
+ ],
+ "canonicalName": "OwnableUpgradeable",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 4780,
+ "nodeType": "StructuredDocumentation",
+ "src": "261:487:13",
+ "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 The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."
+ },
+ "fullyImplemented": true,
+ "id": 4968,
+ "linearizedBaseContracts": [
+ 4968,
+ 5282,
+ 5236
+ ],
+ "name": "OwnableUpgradeable",
+ "nameLocation": "767:18:13",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "OwnableUpgradeable.OwnableStorage",
+ "documentation": {
+ "id": 4785,
+ "nodeType": "StructuredDocumentation",
+ "src": "829:65:13",
+ "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable"
+ },
+ "id": 4788,
+ "members": [
+ {
+ "constant": false,
+ "id": 4787,
+ "mutability": "mutable",
+ "name": "_owner",
+ "nameLocation": "939:6:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4788,
+ "src": "931:14:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4786,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "931:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "OwnableStorage",
+ "nameLocation": "906:14:13",
+ "nodeType": "StructDefinition",
+ "scope": 4968,
+ "src": "899:53:13",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 4791,
+ "mutability": "constant",
+ "name": "OwnableStorageLocation",
+ "nameLocation": "1094:22:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4968,
+ "src": "1069:116:13",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 4789,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1069:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030",
+ "id": 4790,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1119:66:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1",
+ "typeString": "int_const 6517...(69 digits omitted)...7328"
+ },
+ "value": "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 4798,
+ "nodeType": "Block",
+ "src": "1270:81:13",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1289:56:13",
+ "nodeType": "YulBlock",
+ "src": "1289:56:13",
+ "statements": [
+ {
+ "nativeSrc": "1303:32:13",
+ "nodeType": "YulAssignment",
+ "src": "1303:32:13",
+ "value": {
+ "name": "OwnableStorageLocation",
+ "nativeSrc": "1313:22:13",
+ "nodeType": "YulIdentifier",
+ "src": "1313:22:13"
+ },
+ "variableNames": [
+ {
+ "name": "$.slot",
+ "nativeSrc": "1303:6:13",
+ "nodeType": "YulIdentifier",
+ "src": "1303:6:13"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 4795,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "1303:6:13",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 4791,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1313:22:13",
+ "valueSize": 1
+ }
+ ],
+ "id": 4797,
+ "nodeType": "InlineAssembly",
+ "src": "1280:65:13"
+ }
+ ]
+ },
+ "id": 4799,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getOwnableStorage",
+ "nameLocation": "1201:18:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4792,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1219:2:13"
+ },
+ "returnParameters": {
+ "id": 4796,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4795,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "1267:1:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4799,
+ "src": "1244:24:13",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ },
+ "typeName": {
+ "id": 4794,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4793,
+ "name": "OwnableStorage",
+ "nameLocations": [
+ "1244:14:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4788,
+ "src": "1244:14:13"
+ },
+ "referencedDeclaration": 4788,
+ "src": "1244:14:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1243:26:13"
+ },
+ "scope": 4968,
+ "src": "1192:159:13",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "documentation": {
+ "id": 4800,
+ "nodeType": "StructuredDocumentation",
+ "src": "1357:85:13",
+ "text": " @dev The caller account is not authorized to perform an operation."
+ },
+ "errorSelector": "118cdaa7",
+ "id": 4804,
+ "name": "OwnableUnauthorizedAccount",
+ "nameLocation": "1453:26:13",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 4803,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4802,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "1488:7:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4804,
+ "src": "1480:15:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4801,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1480:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1479:17:13"
+ },
+ "src": "1447:50:13"
+ },
+ {
+ "documentation": {
+ "id": 4805,
+ "nodeType": "StructuredDocumentation",
+ "src": "1503:82:13",
+ "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)"
+ },
+ "errorSelector": "1e4fbdf7",
+ "id": 4809,
+ "name": "OwnableInvalidOwner",
+ "nameLocation": "1596:19:13",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 4808,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4807,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "1624:5:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4809,
+ "src": "1616:13:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1616:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1615:15:13"
+ },
+ "src": "1590:41:13"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
+ "id": 4815,
+ "name": "OwnershipTransferred",
+ "nameLocation": "1643:20:13",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 4814,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4811,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "previousOwner",
+ "nameLocation": "1680:13:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4815,
+ "src": "1664:29:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4810,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1664:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4813,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "1711:8:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4815,
+ "src": "1695:24:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4812,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1695:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1663:57:13"
+ },
+ "src": "1637:84:13"
+ },
+ {
+ "body": {
+ "id": 4827,
+ "nodeType": "Block",
+ "src": "1919:55:13",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4824,
+ "name": "initialOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4818,
+ "src": "1954:12:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4823,
+ "name": "__Ownable_init_unchained",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4855,
+ "src": "1929:24:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4825,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1929:38:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4826,
+ "nodeType": "ExpressionStatement",
+ "src": "1929:38:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4816,
+ "nodeType": "StructuredDocumentation",
+ "src": "1727:115:13",
+ "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner."
+ },
+ "id": 4828,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4821,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4820,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "1902:16:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "1902:16:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "1902:16:13"
+ }
+ ],
+ "name": "__Ownable_init",
+ "nameLocation": "1856:14:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4818,
+ "mutability": "mutable",
+ "name": "initialOwner",
+ "nameLocation": "1879:12:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4828,
+ "src": "1871:20:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4817,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1871:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1870:22:13"
+ },
+ "returnParameters": {
+ "id": 4822,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1919:0:13"
+ },
+ "scope": 4968,
+ "src": "1847:127:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4854,
+ "nodeType": "Block",
+ "src": "2062:153:13",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 4840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4835,
+ "name": "initialOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4830,
+ "src": "2076:12:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 4838,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2100:1:13",
+ "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": 4837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2092:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 4836,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2092:7:13",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4839,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2092:10:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2076:26:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4849,
+ "nodeType": "IfStatement",
+ "src": "2072:95:13",
+ "trueBody": {
+ "id": 4848,
+ "nodeType": "Block",
+ "src": "2104:63:13",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 4844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2153:1:13",
+ "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": 4843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2145:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 4842,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2145:7:13",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2145:10:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4841,
+ "name": "OwnableInvalidOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4809,
+ "src": "2125:19:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 4846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2125:31:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 4847,
+ "nodeType": "RevertStatement",
+ "src": "2118:38:13"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4851,
+ "name": "initialOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4830,
+ "src": "2195:12:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4850,
+ "name": "_transferOwnership",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4967,
+ "src": "2176:18:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4852,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2176:32:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4853,
+ "nodeType": "ExpressionStatement",
+ "src": "2176:32:13"
+ }
+ ]
+ },
+ "id": 4855,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4833,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4832,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "2045:16:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "2045:16:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "2045:16:13"
+ }
+ ],
+ "name": "__Ownable_init_unchained",
+ "nameLocation": "1989:24:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4831,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4830,
+ "mutability": "mutable",
+ "name": "initialOwner",
+ "nameLocation": "2022:12:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4855,
+ "src": "2014:20:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4829,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2014:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2013:22:13"
+ },
+ "returnParameters": {
+ "id": 4834,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2062:0:13"
+ },
+ "scope": 4968,
+ "src": "1980:235:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4862,
+ "nodeType": "Block",
+ "src": "2324:41:13",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4858,
+ "name": "_checkOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4896,
+ "src": "2334:11:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 4859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2334:13:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4860,
+ "nodeType": "ExpressionStatement",
+ "src": "2334:13:13"
+ },
+ {
+ "id": 4861,
+ "nodeType": "PlaceholderStatement",
+ "src": "2357:1:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4856,
+ "nodeType": "StructuredDocumentation",
+ "src": "2221:77:13",
+ "text": " @dev Throws if called by any account other than the owner."
+ },
+ "id": 4863,
+ "name": "onlyOwner",
+ "nameLocation": "2312:9:13",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 4857,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2321:2:13"
+ },
+ "src": "2303:62:13",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4878,
+ "nodeType": "Block",
+ "src": "2496:89:13",
+ "statements": [
+ {
+ "assignments": [
+ 4871
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4871,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "2529:1:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4878,
+ "src": "2506:24:13",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ },
+ "typeName": {
+ "id": 4870,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4869,
+ "name": "OwnableStorage",
+ "nameLocations": [
+ "2506:14:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4788,
+ "src": "2506:14:13"
+ },
+ "referencedDeclaration": 4788,
+ "src": "2506:14:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4874,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4872,
+ "name": "_getOwnableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4799,
+ "src": "2533:18:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4788_storage_ptr_$",
+ "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"
+ }
+ },
+ "id": 4873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2533:20:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2506:47:13"
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 4875,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4871,
+ "src": "2570:1:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer"
+ }
+ },
+ "id": 4876,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2572:6:13",
+ "memberName": "_owner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4787,
+ "src": "2570:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 4868,
+ "id": 4877,
+ "nodeType": "Return",
+ "src": "2563:15:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4864,
+ "nodeType": "StructuredDocumentation",
+ "src": "2371:65:13",
+ "text": " @dev Returns the address of the current owner."
+ },
+ "functionSelector": "8da5cb5b",
+ "id": 4879,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "owner",
+ "nameLocation": "2450:5:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4865,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2455:2:13"
+ },
+ "returnParameters": {
+ "id": 4868,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4867,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 4879,
+ "src": "2487:7:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4866,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2487:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2486:9:13"
+ },
+ "scope": 4968,
+ "src": "2441:144:13",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 4895,
+ "nodeType": "Block",
+ "src": "2703:117:13",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 4887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4883,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4879,
+ "src": "2717:5:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2717:7:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4885,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5264,
+ "src": "2728:10:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2728:12:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2717:23:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4894,
+ "nodeType": "IfStatement",
+ "src": "2713:101:13",
+ "trueBody": {
+ "id": 4893,
+ "nodeType": "Block",
+ "src": "2742:72:13",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4889,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5264,
+ "src": "2790:10:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 4890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2790:12:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4888,
+ "name": "OwnableUnauthorizedAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4804,
+ "src": "2763:26:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 4891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2763:40:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 4892,
+ "nodeType": "RevertStatement",
+ "src": "2756:47:13"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4880,
+ "nodeType": "StructuredDocumentation",
+ "src": "2591:62:13",
+ "text": " @dev Throws if the sender is not the owner."
+ },
+ "id": 4896,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_checkOwner",
+ "nameLocation": "2667:11:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4881,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2678:2:13"
+ },
+ "returnParameters": {
+ "id": 4882,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2703:0:13"
+ },
+ "scope": 4968,
+ "src": "2658:162:13",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 4909,
+ "nodeType": "Block",
+ "src": "3209:47:13",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 4905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3246:1:13",
+ "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": 4904,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3238:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 4903,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3238:7:13",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3238:10:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4902,
+ "name": "_transferOwnership",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4967,
+ "src": "3219:18:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3219:30:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4908,
+ "nodeType": "ExpressionStatement",
+ "src": "3219:30:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4897,
+ "nodeType": "StructuredDocumentation",
+ "src": "2826:324:13",
+ "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."
+ },
+ "functionSelector": "715018a6",
+ "id": 4910,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4900,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4899,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "3199:9:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "3199:9:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3199:9:13"
+ }
+ ],
+ "name": "renounceOwnership",
+ "nameLocation": "3164:17:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4898,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3181:2:13"
+ },
+ "returnParameters": {
+ "id": 4901,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3209:0:13"
+ },
+ "scope": 4968,
+ "src": "3155:101:13",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 4937,
+ "nodeType": "Block",
+ "src": "3475:145:13",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 4923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 4918,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4913,
+ "src": "3489:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 4921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3509:1:13",
+ "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": 4920,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3501:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 4919,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3501:7:13",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4922,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3501:10:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3489:22:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 4932,
+ "nodeType": "IfStatement",
+ "src": "3485:91:13",
+ "trueBody": {
+ "id": 4931,
+ "nodeType": "Block",
+ "src": "3513:63:13",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 4927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3562:1:13",
+ "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": 4926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3554:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 4925,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3554:7:13",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 4928,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3554:10:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4924,
+ "name": "OwnableInvalidOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4809,
+ "src": "3534:19:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 4929,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3534:31:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 4930,
+ "nodeType": "RevertStatement",
+ "src": "3527:38:13"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 4934,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4913,
+ "src": "3604:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4933,
+ "name": "_transferOwnership",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4967,
+ "src": "3585:18:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 4935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3585:28:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4936,
+ "nodeType": "ExpressionStatement",
+ "src": "3585:28:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4911,
+ "nodeType": "StructuredDocumentation",
+ "src": "3262:138:13",
+ "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."
+ },
+ "functionSelector": "f2fde38b",
+ "id": 4938,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 4916,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 4915,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "3465:9:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "3465:9:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3465:9:13"
+ }
+ ],
+ "name": "transferOwnership",
+ "nameLocation": "3414:17:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4914,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4913,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "3440:8:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4938,
+ "src": "3432:16:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4912,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3432:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3431:18:13"
+ },
+ "returnParameters": {
+ "id": 4917,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3475:0:13"
+ },
+ "scope": 4968,
+ "src": "3405:215:13",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 4966,
+ "nodeType": "Block",
+ "src": "3837:185:13",
+ "statements": [
+ {
+ "assignments": [
+ 4946
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4946,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "3870:1:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4966,
+ "src": "3847:24:13",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ },
+ "typeName": {
+ "id": 4945,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4944,
+ "name": "OwnableStorage",
+ "nameLocations": [
+ "3847:14:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4788,
+ "src": "3847:14:13"
+ },
+ "referencedDeclaration": 4788,
+ "src": "3847:14:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4949,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4947,
+ "name": "_getOwnableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4799,
+ "src": "3874:18:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4788_storage_ptr_$",
+ "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"
+ }
+ },
+ "id": 4948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3874:20:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3847:47:13"
+ },
+ {
+ "assignments": [
+ 4951
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4951,
+ "mutability": "mutable",
+ "name": "oldOwner",
+ "nameLocation": "3912:8:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4966,
+ "src": "3904:16:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4950,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3904:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 4954,
+ "initialValue": {
+ "expression": {
+ "id": 4952,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4946,
+ "src": "3923:1:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer"
+ }
+ },
+ "id": 4953,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3925:6:13",
+ "memberName": "_owner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4787,
+ "src": "3923:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3904:27:13"
+ },
+ {
+ "expression": {
+ "id": 4959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 4955,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4946,
+ "src": "3941:1:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr",
+ "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer"
+ }
+ },
+ "id": 4957,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3943:6:13",
+ "memberName": "_owner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4787,
+ "src": "3941:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 4958,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4941,
+ "src": "3952:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3941:19:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 4960,
+ "nodeType": "ExpressionStatement",
+ "src": "3941:19:13"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 4962,
+ "name": "oldOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4951,
+ "src": "3996:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 4963,
+ "name": "newOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4941,
+ "src": "4006:8:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 4961,
+ "name": "OwnershipTransferred",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4815,
+ "src": "3975:20:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address)"
+ }
+ },
+ "id": 4964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3975:40:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 4965,
+ "nodeType": "EmitStatement",
+ "src": "3970:45:13"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4939,
+ "nodeType": "StructuredDocumentation",
+ "src": "3626:143:13",
+ "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."
+ },
+ "id": 4967,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_transferOwnership",
+ "nameLocation": "3783:18:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 4942,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4941,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "3810:8:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 4967,
+ "src": "3802:16:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4940,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3802:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3801:18:13"
+ },
+ "returnParameters": {
+ "id": 4943,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3837:0:13"
+ },
+ "scope": 4968,
+ "src": "3774:248:13",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 4969,
+ "src": "749:3275:13",
+ "usedErrors": [
+ 4804,
+ 4809,
+ 4985,
+ 4988
+ ],
+ "usedEvents": [
+ 4815,
+ 4993
+ ]
+ }
+ ],
+ "src": "102:3923:13"
+ },
+ "id": 13
+ },
+ "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
+ "exportedSymbols": {
+ "Initializable": [
+ 5236
+ ]
+ },
+ "id": 5237,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 4970,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "113:24:14"
+ },
+ {
+ "abstract": true,
+ "baseContracts": [],
+ "canonicalName": "Initializable",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 4971,
+ "nodeType": "StructuredDocumentation",
+ "src": "139:2209:14",
+ "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="
+ },
+ "fullyImplemented": true,
+ "id": 5236,
+ "linearizedBaseContracts": [
+ 5236
+ ],
+ "name": "Initializable",
+ "nameLocation": "2367:13:14",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "Initializable.InitializableStorage",
+ "documentation": {
+ "id": 4972,
+ "nodeType": "StructuredDocumentation",
+ "src": "2387:293:14",
+ "text": " @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"
+ },
+ "id": 4979,
+ "members": [
+ {
+ "constant": false,
+ "id": 4975,
+ "mutability": "mutable",
+ "name": "_initialized",
+ "nameLocation": "2820:12:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 4979,
+ "src": "2813:19:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 4974,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "2813:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 4978,
+ "mutability": "mutable",
+ "name": "_initializing",
+ "nameLocation": "2955:13:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 4979,
+ "src": "2950:18:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 4977,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2950:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "InitializableStorage",
+ "nameLocation": "2692:20:14",
+ "nodeType": "StructDefinition",
+ "scope": 5236,
+ "src": "2685:290:14",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 4982,
+ "mutability": "constant",
+ "name": "INITIALIZABLE_STORAGE",
+ "nameLocation": "3123:21:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5236,
+ "src": "3098:115:14",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 4980,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3098:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030",
+ "id": 4981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3147:66:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1",
+ "typeString": "int_const 1089...(70 digits omitted)...9600"
+ },
+ "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"
+ },
+ "visibility": "private"
+ },
+ {
+ "documentation": {
+ "id": 4983,
+ "nodeType": "StructuredDocumentation",
+ "src": "3220:60:14",
+ "text": " @dev The contract is already initialized."
+ },
+ "errorSelector": "f92ee8a9",
+ "id": 4985,
+ "name": "InvalidInitialization",
+ "nameLocation": "3291:21:14",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 4984,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3312:2:14"
+ },
+ "src": "3285:30:14"
+ },
+ {
+ "documentation": {
+ "id": 4986,
+ "nodeType": "StructuredDocumentation",
+ "src": "3321:57:14",
+ "text": " @dev The contract is not initializing."
+ },
+ "errorSelector": "d7e6bcf8",
+ "id": 4988,
+ "name": "NotInitializing",
+ "nameLocation": "3389:15:14",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 4987,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3404:2:14"
+ },
+ "src": "3383:24:14"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 4989,
+ "nodeType": "StructuredDocumentation",
+ "src": "3413:90:14",
+ "text": " @dev Triggered when the contract has been initialized or reinitialized."
+ },
+ "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2",
+ "id": 4993,
+ "name": "Initialized",
+ "nameLocation": "3514:11:14",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 4992,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 4991,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "3533:7:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 4993,
+ "src": "3526:14:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 4990,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3526:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3525:16:14"
+ },
+ "src": "3508:34:14"
+ },
+ {
+ "body": {
+ "id": 5075,
+ "nodeType": "Block",
+ "src": "4092:1079:14",
+ "statements": [
+ {
+ "assignments": [
+ 4998
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 4998,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "4187:1:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5075,
+ "src": "4158:30:14",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ },
+ "typeName": {
+ "id": 4997,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 4996,
+ "name": "InitializableStorage",
+ "nameLocations": [
+ "4158:20:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4979,
+ "src": "4158:20:14"
+ },
+ "referencedDeclaration": 4979,
+ "src": "4158:20:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5001,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 4999,
+ "name": "_getInitializableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5235,
+ "src": "4191:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$",
+ "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)"
+ }
+ },
+ "id": 5000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4191:26:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4158:59:14"
+ },
+ {
+ "assignments": [
+ 5003
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5003,
+ "mutability": "mutable",
+ "name": "isTopLevelCall",
+ "nameLocation": "4284:14:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5075,
+ "src": "4279:19:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5002,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4279:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5007,
+ "initialValue": {
+ "id": 5006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "4301:16:14",
+ "subExpression": {
+ "expression": {
+ "id": 5004,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4998,
+ "src": "4302:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5005,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4304:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "4302:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4279:38:14"
+ },
+ {
+ "assignments": [
+ 5009
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5009,
+ "mutability": "mutable",
+ "name": "initialized",
+ "nameLocation": "4334:11:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5075,
+ "src": "4327:18:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 5008,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "4327:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5012,
+ "initialValue": {
+ "expression": {
+ "id": 5010,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4998,
+ "src": "4348:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5011,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4350:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "4348:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4327:35:14"
+ },
+ {
+ "assignments": [
+ 5014
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5014,
+ "mutability": "mutable",
+ "name": "initialSetup",
+ "nameLocation": "4709:12:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5075,
+ "src": "4704:17:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5013,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4704:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5020,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 5019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 5017,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5015,
+ "name": "initialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5009,
+ "src": "4724:11:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4739:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4724:16:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "id": 5018,
+ "name": "isTopLevelCall",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5003,
+ "src": "4744:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4724:34:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4704:54:14"
+ },
+ {
+ "assignments": [
+ 5022
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5022,
+ "mutability": "mutable",
+ "name": "construction",
+ "nameLocation": "4773:12:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5075,
+ "src": "4768:17:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5021,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4768:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5035,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 5034,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 5025,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5023,
+ "name": "initialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5009,
+ "src": "4788:11:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 5024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4803:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4788:16:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5033,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5028,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4816:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Initializable_$5236",
+ "typeString": "contract Initializable"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Initializable_$5236",
+ "typeString": "contract Initializable"
+ }
+ ],
+ "id": 5027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4808:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 5026,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4808:7:14",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5029,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4808:13:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5030,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4822:4:14",
+ "memberName": "code",
+ "nodeType": "MemberAccess",
+ "src": "4808:18:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 5031,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4827:6:14",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4808:25:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5032,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4837:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4808:30:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4788:50:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4768:70:14"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 5040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5037,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "4853:13:14",
+ "subExpression": {
+ "id": 5036,
+ "name": "initialSetup",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5014,
+ "src": "4854:12:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "id": 5039,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "4870:13:14",
+ "subExpression": {
+ "id": 5038,
+ "name": "construction",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5022,
+ "src": "4871:12:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4853:30:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5045,
+ "nodeType": "IfStatement",
+ "src": "4849:91:14",
+ "trueBody": {
+ "id": 5044,
+ "nodeType": "Block",
+ "src": "4885:55:14",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5041,
+ "name": "InvalidInitialization",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4985,
+ "src": "4906:21:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 5042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4906:23:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 5043,
+ "nodeType": "RevertStatement",
+ "src": "4899:30:14"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 5050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5046,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4998,
+ "src": "4949:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5048,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4951:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "4949:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 5049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4966:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4949:18:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 5051,
+ "nodeType": "ExpressionStatement",
+ "src": "4949:18:14"
+ },
+ {
+ "condition": {
+ "id": 5052,
+ "name": "isTopLevelCall",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5003,
+ "src": "4981:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5060,
+ "nodeType": "IfStatement",
+ "src": "4977:67:14",
+ "trueBody": {
+ "id": 5059,
+ "nodeType": "Block",
+ "src": "4997:47:14",
+ "statements": [
+ {
+ "expression": {
+ "id": 5057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5053,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4998,
+ "src": "5011:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5055,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5013:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "5011:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 5056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5029:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "5011:22:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5058,
+ "nodeType": "ExpressionStatement",
+ "src": "5011:22:14"
+ }
+ ]
+ }
+ },
+ {
+ "id": 5061,
+ "nodeType": "PlaceholderStatement",
+ "src": "5053:1:14"
+ },
+ {
+ "condition": {
+ "id": 5062,
+ "name": "isTopLevelCall",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5003,
+ "src": "5068:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5074,
+ "nodeType": "IfStatement",
+ "src": "5064:101:14",
+ "trueBody": {
+ "id": 5073,
+ "nodeType": "Block",
+ "src": "5084:81:14",
+ "statements": [
+ {
+ "expression": {
+ "id": 5067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5063,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4998,
+ "src": "5098:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5065,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5100:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "5098:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 5066,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5116:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "5098:23:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5068,
+ "nodeType": "ExpressionStatement",
+ "src": "5098:23:14"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "hexValue": "31",
+ "id": 5070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5152:1:14",
+ "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": 5069,
+ "name": "Initialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4993,
+ "src": "5140:11:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$",
+ "typeString": "function (uint64)"
+ }
+ },
+ "id": 5071,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5140:14:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5072,
+ "nodeType": "EmitStatement",
+ "src": "5135:19:14"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 4994,
+ "nodeType": "StructuredDocumentation",
+ "src": "3548:516:14",
+ "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."
+ },
+ "id": 5076,
+ "name": "initializer",
+ "nameLocation": "4078:11:14",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 4995,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4089:2:14"
+ },
+ "src": "4069:1102:14",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5122,
+ "nodeType": "Block",
+ "src": "6289:392:14",
+ "statements": [
+ {
+ "assignments": [
+ 5083
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5083,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "6384:1:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5122,
+ "src": "6355:30:14",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ },
+ "typeName": {
+ "id": 5082,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5081,
+ "name": "InitializableStorage",
+ "nameLocations": [
+ "6355:20:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4979,
+ "src": "6355:20:14"
+ },
+ "referencedDeclaration": 4979,
+ "src": "6355:20:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5086,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5084,
+ "name": "_getInitializableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5235,
+ "src": "6388:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$",
+ "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)"
+ }
+ },
+ "id": 5085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6388:26:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6355:59:14"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 5093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5087,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5083,
+ "src": "6429:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5088,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6431:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "6429:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 5092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5089,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5083,
+ "src": "6448:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5090,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6450:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "6448:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 5091,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5079,
+ "src": "6466:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "6448:25:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6429:44:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5098,
+ "nodeType": "IfStatement",
+ "src": "6425:105:14",
+ "trueBody": {
+ "id": 5097,
+ "nodeType": "Block",
+ "src": "6475:55:14",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5094,
+ "name": "InvalidInitialization",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4985,
+ "src": "6496:21:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 5095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6496:23:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 5096,
+ "nodeType": "RevertStatement",
+ "src": "6489:30:14"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 5103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5099,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5083,
+ "src": "6539:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5101,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "6541:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "6539:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 5102,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5079,
+ "src": "6556:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "6539:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 5104,
+ "nodeType": "ExpressionStatement",
+ "src": "6539:24:14"
+ },
+ {
+ "expression": {
+ "id": 5109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5105,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5083,
+ "src": "6573:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5107,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "6575:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "6573:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 5108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6591:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "6573:22:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5110,
+ "nodeType": "ExpressionStatement",
+ "src": "6573:22:14"
+ },
+ {
+ "id": 5111,
+ "nodeType": "PlaceholderStatement",
+ "src": "6605:1:14"
+ },
+ {
+ "expression": {
+ "id": 5116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5112,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5083,
+ "src": "6616:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5114,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "6618:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "6616:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 5115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6634:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "6616:23:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5117,
+ "nodeType": "ExpressionStatement",
+ "src": "6616:23:14"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 5119,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5079,
+ "src": "6666:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 5118,
+ "name": "Initialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4993,
+ "src": "6654:11:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$",
+ "typeString": "function (uint64)"
+ }
+ },
+ "id": 5120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6654:20:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5121,
+ "nodeType": "EmitStatement",
+ "src": "6649:25:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5077,
+ "nodeType": "StructuredDocumentation",
+ "src": "5177:1068:14",
+ "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."
+ },
+ "id": 5123,
+ "name": "reinitializer",
+ "nameLocation": "6259:13:14",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 5080,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5079,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "6280:7:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5123,
+ "src": "6273:14:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 5078,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "6273:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6272:16:14"
+ },
+ "src": "6250:431:14",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5130,
+ "nodeType": "Block",
+ "src": "6919:48:14",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5126,
+ "name": "_checkInitializing",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5144,
+ "src": "6929:18:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 5127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6929:20:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5128,
+ "nodeType": "ExpressionStatement",
+ "src": "6929:20:14"
+ },
+ {
+ "id": 5129,
+ "nodeType": "PlaceholderStatement",
+ "src": "6959:1:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5124,
+ "nodeType": "StructuredDocumentation",
+ "src": "6687:199:14",
+ "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."
+ },
+ "id": 5131,
+ "name": "onlyInitializing",
+ "nameLocation": "6900:16:14",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 5125,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6916:2:14"
+ },
+ "src": "6891:76:14",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5143,
+ "nodeType": "Block",
+ "src": "7134:89:14",
+ "statements": [
+ {
+ "condition": {
+ "id": 5137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "7148:18:14",
+ "subExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5135,
+ "name": "_isInitializing",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5212,
+ "src": "7149:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
+ "typeString": "function () view returns (bool)"
+ }
+ },
+ "id": 5136,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7149:17:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5142,
+ "nodeType": "IfStatement",
+ "src": "7144:73:14",
+ "trueBody": {
+ "id": 5141,
+ "nodeType": "Block",
+ "src": "7168:49:14",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5138,
+ "name": "NotInitializing",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4988,
+ "src": "7189:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 5139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7189:17:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 5140,
+ "nodeType": "RevertStatement",
+ "src": "7182:24:14"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5132,
+ "nodeType": "StructuredDocumentation",
+ "src": "6973:104:14",
+ "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."
+ },
+ "id": 5144,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_checkInitializing",
+ "nameLocation": "7091:18:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5133,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7109:2:14"
+ },
+ "returnParameters": {
+ "id": 5134,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7134:0:14"
+ },
+ "scope": 5236,
+ "src": "7082:141:14",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5189,
+ "nodeType": "Block",
+ "src": "7758:373:14",
+ "statements": [
+ {
+ "assignments": [
+ 5150
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5150,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "7853:1:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5189,
+ "src": "7824:30:14",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ },
+ "typeName": {
+ "id": 5149,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5148,
+ "name": "InitializableStorage",
+ "nameLocations": [
+ "7824:20:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4979,
+ "src": "7824:20:14"
+ },
+ "referencedDeclaration": 4979,
+ "src": "7824:20:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5153,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5151,
+ "name": "_getInitializableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5235,
+ "src": "7857:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$",
+ "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)"
+ }
+ },
+ "id": 5152,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7857:26:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7824:59:14"
+ },
+ {
+ "condition": {
+ "expression": {
+ "id": 5154,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5150,
+ "src": "7898:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5155,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7900:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "7898:15:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5160,
+ "nodeType": "IfStatement",
+ "src": "7894:76:14",
+ "trueBody": {
+ "id": 5159,
+ "nodeType": "Block",
+ "src": "7915:55:14",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5156,
+ "name": "InvalidInitialization",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4985,
+ "src": "7936:21:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 5157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7936:23:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 5158,
+ "nodeType": "RevertStatement",
+ "src": "7929:30:14"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 5168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5161,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5150,
+ "src": "7983:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5162,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7985:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "7983:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5165,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8006:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 5164,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "8006:6:14",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ }
+ ],
+ "id": 5163,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "8001:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 5166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8001:12:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint64",
+ "typeString": "type(uint64)"
+ }
+ },
+ "id": 5167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8014:3:14",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "8001:16:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "7983:34:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5188,
+ "nodeType": "IfStatement",
+ "src": "7979:146:14",
+ "trueBody": {
+ "id": 5187,
+ "nodeType": "Block",
+ "src": "8019:106:14",
+ "statements": [
+ {
+ "expression": {
+ "id": 5177,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5169,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5150,
+ "src": "8033:1:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5171,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "8035:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "8033:14:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8055:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 5173,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "8055:6:14",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ }
+ ],
+ "id": 5172,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "8050:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 5175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8050:12:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint64",
+ "typeString": "type(uint64)"
+ }
+ },
+ "id": 5176,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8063:3:14",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "8050:16:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "8033:33:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 5178,
+ "nodeType": "ExpressionStatement",
+ "src": "8033:33:14"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8102:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 5181,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "8102:6:14",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ }
+ ],
+ "id": 5180,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "8097:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 5183,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8097:12:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint64",
+ "typeString": "type(uint64)"
+ }
+ },
+ "id": 5184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8110:3:14",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "8097:16:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 5179,
+ "name": "Initialized",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4993,
+ "src": "8085:11:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$",
+ "typeString": "function (uint64)"
+ }
+ },
+ "id": 5185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8085:29:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5186,
+ "nodeType": "EmitStatement",
+ "src": "8080:34:14"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5145,
+ "nodeType": "StructuredDocumentation",
+ "src": "7229:475:14",
+ "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."
+ },
+ "id": 5190,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_disableInitializers",
+ "nameLocation": "7718:20:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5146,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7738:2:14"
+ },
+ "returnParameters": {
+ "id": 5147,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7758:0:14"
+ },
+ "scope": 5236,
+ "src": "7709:422:14",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5200,
+ "nodeType": "Block",
+ "src": "8306:63:14",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5196,
+ "name": "_getInitializableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5235,
+ "src": "8323:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$",
+ "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)"
+ }
+ },
+ "id": 5197,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8323:26:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5198,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8350:12:14",
+ "memberName": "_initialized",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4975,
+ "src": "8323:39:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "functionReturnParameters": 5195,
+ "id": 5199,
+ "nodeType": "Return",
+ "src": "8316:46:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5191,
+ "nodeType": "StructuredDocumentation",
+ "src": "8137:99:14",
+ "text": " @dev Returns the highest version that has been initialized. See {reinitializer}."
+ },
+ "id": 5201,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getInitializedVersion",
+ "nameLocation": "8250:22:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5192,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8272:2:14"
+ },
+ "returnParameters": {
+ "id": 5195,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5194,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5201,
+ "src": "8298:6:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 5193,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "8298:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8297:8:14"
+ },
+ "scope": 5236,
+ "src": "8241:128:14",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5211,
+ "nodeType": "Block",
+ "src": "8541:64:14",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5207,
+ "name": "_getInitializableStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5235,
+ "src": "8558:24:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$",
+ "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)"
+ }
+ },
+ "id": 5208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8558:26:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage storage pointer"
+ }
+ },
+ "id": 5209,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8585:13:14",
+ "memberName": "_initializing",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 4978,
+ "src": "8558:40:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 5206,
+ "id": 5210,
+ "nodeType": "Return",
+ "src": "8551:47:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5202,
+ "nodeType": "StructuredDocumentation",
+ "src": "8375:105:14",
+ "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."
+ },
+ "id": 5212,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_isInitializing",
+ "nameLocation": "8494:15:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5203,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8509:2:14"
+ },
+ "returnParameters": {
+ "id": 5206,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5205,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5212,
+ "src": "8535:4:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5204,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8535:4:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8534:6:14"
+ },
+ "scope": 5236,
+ "src": "8485:120:14",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5220,
+ "nodeType": "Block",
+ "src": "8896:45:14",
+ "statements": [
+ {
+ "expression": {
+ "id": 5218,
+ "name": "INITIALIZABLE_STORAGE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4982,
+ "src": "8913:21:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5217,
+ "id": 5219,
+ "nodeType": "Return",
+ "src": "8906:28:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5213,
+ "nodeType": "StructuredDocumentation",
+ "src": "8611:203:14",
+ "text": " @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n NOTE: Consider following the ERC-7201 formula to derive storage locations."
+ },
+ "id": 5221,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_initializableStorageSlot",
+ "nameLocation": "8828:25:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5214,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8853:2:14"
+ },
+ "returnParameters": {
+ "id": 5217,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5216,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5221,
+ "src": "8887:7:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5215,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8887:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8886:9:14"
+ },
+ "scope": 5236,
+ "src": "8819:122:14",
+ "stateMutability": "pure",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5234,
+ "nodeType": "Block",
+ "src": "9161:115:14",
+ "statements": [
+ {
+ "assignments": [
+ 5229
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5229,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "9179:4:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5234,
+ "src": "9171:12:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5228,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "9171:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5232,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5230,
+ "name": "_initializableStorageSlot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5221,
+ "src": "9186:25:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$",
+ "typeString": "function () pure returns (bytes32)"
+ }
+ },
+ "id": 5231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9186:27:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9171:42:14"
+ },
+ {
+ "AST": {
+ "nativeSrc": "9232:38:14",
+ "nodeType": "YulBlock",
+ "src": "9232:38:14",
+ "statements": [
+ {
+ "nativeSrc": "9246:14:14",
+ "nodeType": "YulAssignment",
+ "src": "9246:14:14",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "9256:4:14",
+ "nodeType": "YulIdentifier",
+ "src": "9256:4:14"
+ },
+ "variableNames": [
+ {
+ "name": "$.slot",
+ "nativeSrc": "9246:6:14",
+ "nodeType": "YulIdentifier",
+ "src": "9246:6:14"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5226,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "9246:6:14",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5229,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9256:4:14",
+ "valueSize": 1
+ }
+ ],
+ "id": 5233,
+ "nodeType": "InlineAssembly",
+ "src": "9223:47:14"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5222,
+ "nodeType": "StructuredDocumentation",
+ "src": "8947:67:14",
+ "text": " @dev Returns a pointer to the storage namespace."
+ },
+ "id": 5235,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getInitializableStorage",
+ "nameLocation": "9080:24:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5223,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9104:2:14"
+ },
+ "returnParameters": {
+ "id": 5227,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5226,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "9158:1:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 5235,
+ "src": "9129:30:14",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ },
+ "typeName": {
+ "id": 5225,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5224,
+ "name": "InitializableStorage",
+ "nameLocations": [
+ "9129:20:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4979,
+ "src": "9129:20:14"
+ },
+ "referencedDeclaration": 4979,
+ "src": "9129:20:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr",
+ "typeString": "struct Initializable.InitializableStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9128:32:14"
+ },
+ "scope": 5236,
+ "src": "9071:205:14",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ }
+ ],
+ "scope": 5237,
+ "src": "2349:6929:14",
+ "usedErrors": [
+ 4985,
+ 4988
+ ],
+ "usedEvents": [
+ 4993
+ ]
+ }
+ ],
+ "src": "113:9166:14"
+ },
+ "id": 14
+ },
+ "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
+ "exportedSymbols": {
+ "ContextUpgradeable": [
+ 5282
+ ],
+ "Initializable": [
+ 5236
+ ]
+ },
+ "id": 5283,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 5238,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "101:24:15"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
+ "file": "../proxy/utils/Initializable.sol",
+ "id": 5240,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 5283,
+ "sourceUnit": 5237,
+ "src": "126:63:15",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5239,
+ "name": "Initializable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5236,
+ "src": "134:13:15",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 5242,
+ "name": "Initializable",
+ "nameLocations": [
+ "728:13:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5236,
+ "src": "728:13:15"
+ },
+ "id": 5243,
+ "nodeType": "InheritanceSpecifier",
+ "src": "728:13:15"
+ }
+ ],
+ "canonicalName": "ContextUpgradeable",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 5241,
+ "nodeType": "StructuredDocumentation",
+ "src": "191:496:15",
+ "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
+ },
+ "fullyImplemented": true,
+ "id": 5282,
+ "linearizedBaseContracts": [
+ 5282,
+ 5236
+ ],
+ "name": "ContextUpgradeable",
+ "nameLocation": "706:18:15",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 5248,
+ "nodeType": "Block",
+ "src": "800:7:15",
+ "statements": []
+ },
+ "id": 5249,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 5246,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 5245,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "783:16:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "783:16:15"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "783:16:15"
+ }
+ ],
+ "name": "__Context_init",
+ "nameLocation": "757:14:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5244,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "771:2:15"
+ },
+ "returnParameters": {
+ "id": 5247,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "800:0:15"
+ },
+ "scope": 5282,
+ "src": "748:59:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5254,
+ "nodeType": "Block",
+ "src": "875:7:15",
+ "statements": []
+ },
+ "id": 5255,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 5252,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 5251,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "858:16:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "858:16:15"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "858:16:15"
+ }
+ ],
+ "name": "__Context_init_unchained",
+ "nameLocation": "822:24:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5250,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "846:2:15"
+ },
+ "returnParameters": {
+ "id": 5253,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "875:0:15"
+ },
+ "scope": 5282,
+ "src": "813:69:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5263,
+ "nodeType": "Block",
+ "src": "949:34:15",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 5260,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "966:3:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 5261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "970:6:15",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "966:10:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 5259,
+ "id": 5262,
+ "nodeType": "Return",
+ "src": "959:17:15"
+ }
+ ]
+ },
+ "id": 5264,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgSender",
+ "nameLocation": "896:10:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5256,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "906:2:15"
+ },
+ "returnParameters": {
+ "id": 5259,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5258,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5264,
+ "src": "940:7:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5257,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "940:7:15",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "939:9:15"
+ },
+ "scope": 5282,
+ "src": "887:96:15",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5272,
+ "nodeType": "Block",
+ "src": "1056:32:15",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 5269,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "1073:3:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 5270,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1077:4:15",
+ "memberName": "data",
+ "nodeType": "MemberAccess",
+ "src": "1073:8:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ },
+ "functionReturnParameters": 5268,
+ "id": 5271,
+ "nodeType": "Return",
+ "src": "1066:15:15"
+ }
+ ]
+ },
+ "id": 5273,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgData",
+ "nameLocation": "998:8:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5265,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1006:2:15"
+ },
+ "returnParameters": {
+ "id": 5268,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5267,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5273,
+ "src": "1040:14:15",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 5266,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1040:5:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1039:16:15"
+ },
+ "scope": 5282,
+ "src": "989:99:15",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5280,
+ "nodeType": "Block",
+ "src": "1166:25:15",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 5278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1183:1:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 5277,
+ "id": 5279,
+ "nodeType": "Return",
+ "src": "1176:8:15"
+ }
+ ]
+ },
+ "id": 5281,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_contextSuffixLength",
+ "nameLocation": "1103:20:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5274,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1123:2:15"
+ },
+ "returnParameters": {
+ "id": 5277,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5276,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5281,
+ "src": "1157:7:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5275,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1157:7:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1156:9:15"
+ },
+ "scope": 5282,
+ "src": "1094:97:15",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 5283,
+ "src": "688:505:15",
+ "usedErrors": [
+ 4985,
+ 4988
+ ],
+ "usedEvents": [
+ 4993
+ ]
+ }
+ ],
+ "src": "101:1093:15"
+ },
+ "id": 15
+ },
+ "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol",
+ "exportedSymbols": {
+ "EIP712Upgradeable": [
+ 5626
+ ],
+ "IERC5267": [
+ 5651
+ ],
+ "Initializable": [
+ 5236
+ ],
+ "MessageHashUtils": [
+ 8703
+ ]
+ },
+ "id": 5627,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 5284,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "113:24:16"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
+ "file": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
+ "id": 5286,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 5627,
+ "sourceUnit": 8704,
+ "src": "139:97:16",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5285,
+ "name": "MessageHashUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8703,
+ "src": "147:16:16",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol",
+ "file": "@openzeppelin/contracts/interfaces/IERC5267.sol",
+ "id": 5288,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 5627,
+ "sourceUnit": 5652,
+ "src": "237:73:16",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5287,
+ "name": "IERC5267",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5651,
+ "src": "245:8:16",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
+ "file": "../../proxy/utils/Initializable.sol",
+ "id": 5290,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 5627,
+ "sourceUnit": 5237,
+ "src": "311:66:16",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5289,
+ "name": "Initializable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5236,
+ "src": "319:13:16",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 5292,
+ "name": "Initializable",
+ "nameLocations": [
+ "1998:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5236,
+ "src": "1998:13:16"
+ },
+ "id": 5293,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1998:13:16"
+ },
+ {
+ "baseName": {
+ "id": 5294,
+ "name": "IERC5267",
+ "nameLocations": [
+ "2013:8:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5651,
+ "src": "2013:8:16"
+ },
+ "id": 5295,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2013:8:16"
+ }
+ ],
+ "canonicalName": "EIP712Upgradeable",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 5291,
+ "nodeType": "StructuredDocumentation",
+ "src": "379:1579:16",
+ "text": " @dev https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data.\n The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n separator from the immutable values, which is cheaper than accessing a cached version in cold storage."
+ },
+ "fullyImplemented": true,
+ "id": 5626,
+ "linearizedBaseContracts": [
+ 5626,
+ 5651,
+ 5236
+ ],
+ "name": "EIP712Upgradeable",
+ "nameLocation": "1977:17:16",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 5300,
+ "mutability": "constant",
+ "name": "TYPE_HASH",
+ "nameLocation": "2053:9:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5626,
+ "src": "2028:140:16",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5296,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2028:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
+ "id": 5298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2083:84:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
+ "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
+ },
+ "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
+ "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
+ }
+ ],
+ "id": 5297,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2073:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2073:95:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "canonicalName": "EIP712Upgradeable.EIP712Storage",
+ "documentation": {
+ "id": 5301,
+ "nodeType": "StructuredDocumentation",
+ "src": "2175:64:16",
+ "text": "@custom:storage-location erc7201:openzeppelin.storage.EIP712"
+ },
+ "id": 5312,
+ "members": [
+ {
+ "constant": false,
+ "id": 5304,
+ "mutability": "mutable",
+ "name": "_hashedName",
+ "nameLocation": "2332:11:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5312,
+ "src": "2324:19:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5303,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2324:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5307,
+ "mutability": "mutable",
+ "name": "_hashedVersion",
+ "nameLocation": "2413:14:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5312,
+ "src": "2405:22:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5306,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2405:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5309,
+ "mutability": "mutable",
+ "name": "_name",
+ "nameLocation": "2445:5:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5312,
+ "src": "2438:12:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5308,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2438:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5311,
+ "mutability": "mutable",
+ "name": "_version",
+ "nameLocation": "2467:8:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5312,
+ "src": "2460:15:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5310,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2460:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "EIP712Storage",
+ "nameLocation": "2251:13:16",
+ "nodeType": "StructDefinition",
+ "scope": 5626,
+ "src": "2244:238:16",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 5315,
+ "mutability": "constant",
+ "name": "EIP712StorageLocation",
+ "nameLocation": "2623:21:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5626,
+ "src": "2598:115:16",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5313,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2598:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307861313661343664393432363163373531376363386666383966363163306365393335393865336338343938303130313164656536343961366135353764313030",
+ "id": 5314,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2647:66:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_73010143390315934406010559831118728393600729754696197287367516085911467577600_by_1",
+ "typeString": "int_const 7301...(69 digits omitted)...7600"
+ },
+ "value": "0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5322,
+ "nodeType": "Block",
+ "src": "2796:80:16",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2815:55:16",
+ "nodeType": "YulBlock",
+ "src": "2815:55:16",
+ "statements": [
+ {
+ "nativeSrc": "2829:31:16",
+ "nodeType": "YulAssignment",
+ "src": "2829:31:16",
+ "value": {
+ "name": "EIP712StorageLocation",
+ "nativeSrc": "2839:21:16",
+ "nodeType": "YulIdentifier",
+ "src": "2839:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "$.slot",
+ "nativeSrc": "2829:6:16",
+ "nodeType": "YulIdentifier",
+ "src": "2829:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5319,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2829:6:16",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5315,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2839:21:16",
+ "valueSize": 1
+ }
+ ],
+ "id": 5321,
+ "nodeType": "InlineAssembly",
+ "src": "2806:64:16"
+ }
+ ]
+ },
+ "id": 5323,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getEIP712Storage",
+ "nameLocation": "2729:17:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5316,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2746:2:16"
+ },
+ "returnParameters": {
+ "id": 5320,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5319,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "2793:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5323,
+ "src": "2771:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5318,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5317,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "2771:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "2771:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "2771:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2770:25:16"
+ },
+ "scope": 5626,
+ "src": "2720:156:16",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5338,
+ "nodeType": "Block",
+ "src": "3538:55:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5334,
+ "name": "name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5326,
+ "src": "3572:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 5335,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5328,
+ "src": "3578:7:16",
+ "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"
+ }
+ ],
+ "id": 5333,
+ "name": "__EIP712_init_unchained",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5379,
+ "src": "3548:23:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory,string memory)"
+ }
+ },
+ "id": 5336,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3548:38:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5337,
+ "nodeType": "ExpressionStatement",
+ "src": "3548:38:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5324,
+ "nodeType": "StructuredDocumentation",
+ "src": "2882:559:16",
+ "text": " @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP-712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."
+ },
+ "id": 5339,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 5331,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 5330,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "3521:16:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "3521:16:16"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3521:16:16"
+ }
+ ],
+ "name": "__EIP712_init",
+ "nameLocation": "3455:13:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5329,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5326,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "3483:4:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5339,
+ "src": "3469:18:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5325,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3469:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5328,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "3503:7:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5339,
+ "src": "3489:21:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5327,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3489:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3468:43:16"
+ },
+ "returnParameters": {
+ "id": 5332,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3538:0:16"
+ },
+ "scope": 5626,
+ "src": "3446:147:16",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5378,
+ "nodeType": "Block",
+ "src": "3701:228:16",
+ "statements": [
+ {
+ "assignments": [
+ 5350
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5350,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "3733:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5378,
+ "src": "3711:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5349,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5348,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "3711:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "3711:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "3711:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5353,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5351,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "3737:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3737:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3711:45:16"
+ },
+ {
+ "expression": {
+ "id": 5358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5354,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5350,
+ "src": "3766:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5356,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3768:5:16",
+ "memberName": "_name",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5309,
+ "src": "3766:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 5357,
+ "name": "name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5341,
+ "src": "3776:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "3766:14:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 5359,
+ "nodeType": "ExpressionStatement",
+ "src": "3766:14:16"
+ },
+ {
+ "expression": {
+ "id": 5364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5360,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5350,
+ "src": "3790:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5362,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3792:8:16",
+ "memberName": "_version",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5311,
+ "src": "3790:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 5363,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5343,
+ "src": "3803:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "3790:20:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 5365,
+ "nodeType": "ExpressionStatement",
+ "src": "3790:20:16"
+ },
+ {
+ "expression": {
+ "id": 5370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5366,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5350,
+ "src": "3875:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5368,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3877:11:16",
+ "memberName": "_hashedName",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5304,
+ "src": "3875:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 5369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3891:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3875:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5371,
+ "nodeType": "ExpressionStatement",
+ "src": "3875:17:16"
+ },
+ {
+ "expression": {
+ "id": 5376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 5372,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5350,
+ "src": "3902:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5374,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3904:14:16",
+ "memberName": "_hashedVersion",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5307,
+ "src": "3902:16:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 5375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3921:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3902:20:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5377,
+ "nodeType": "ExpressionStatement",
+ "src": "3902:20:16"
+ }
+ ]
+ },
+ "id": 5379,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 5346,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 5345,
+ "name": "onlyInitializing",
+ "nameLocations": [
+ "3684:16:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5131,
+ "src": "3684:16:16"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3684:16:16"
+ }
+ ],
+ "name": "__EIP712_init_unchained",
+ "nameLocation": "3608:23:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5344,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5341,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "3646:4:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5379,
+ "src": "3632:18:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5340,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3632:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5343,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "3666:7:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5379,
+ "src": "3652:21:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5342,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3652:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3631:43:16"
+ },
+ "returnParameters": {
+ "id": 5347,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3701:0:16"
+ },
+ "scope": 5626,
+ "src": "3599:330:16",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5388,
+ "nodeType": "Block",
+ "src": "4077:47:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5385,
+ "name": "_buildDomainSeparator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5412,
+ "src": "4094:21:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
+ "typeString": "function () view returns (bytes32)"
+ }
+ },
+ "id": 5386,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4094:23:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5384,
+ "id": 5387,
+ "nodeType": "Return",
+ "src": "4087:30:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5380,
+ "nodeType": "StructuredDocumentation",
+ "src": "3935:75:16",
+ "text": " @dev Returns the domain separator for the current chain."
+ },
+ "id": 5389,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_domainSeparatorV4",
+ "nameLocation": "4024:18:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5381,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4042:2:16"
+ },
+ "returnParameters": {
+ "id": 5384,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5383,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5389,
+ "src": "4068:7:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5382,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4068:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4067:9:16"
+ },
+ "scope": 5626,
+ "src": "4015:109:16",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5411,
+ "nodeType": "Block",
+ "src": "4194:127:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5397,
+ "name": "TYPE_HASH",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5300,
+ "src": "4232:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5398,
+ "name": "_EIP712NameHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5573,
+ "src": "4243:15:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
+ "typeString": "function () view returns (bytes32)"
+ }
+ },
+ "id": 5399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4243:17:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5400,
+ "name": "_EIP712VersionHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5625,
+ "src": "4262:18:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
+ "typeString": "function () view returns (bytes32)"
+ }
+ },
+ "id": 5401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4262:20:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "expression": {
+ "id": 5402,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "4284:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 5403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4290:7:16",
+ "memberName": "chainid",
+ "nodeType": "MemberAccess",
+ "src": "4284:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 5406,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4307:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626",
+ "typeString": "contract EIP712Upgradeable"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626",
+ "typeString": "contract EIP712Upgradeable"
+ }
+ ],
+ "id": 5405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4299:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 5404,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4299:7:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5407,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4299:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 5395,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "4221:3:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 5396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "4225:6:16",
+ "memberName": "encode",
+ "nodeType": "MemberAccess",
+ "src": "4221:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 5408,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4221:92:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 5394,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "4211:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5409,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4211:103:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5393,
+ "id": 5410,
+ "nodeType": "Return",
+ "src": "4204:110:16"
+ }
+ ]
+ },
+ "id": 5412,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_buildDomainSeparator",
+ "nameLocation": "4139:21:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5390,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4160:2:16"
+ },
+ "returnParameters": {
+ "id": 5393,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5392,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5412,
+ "src": "4185:7:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5391,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4185:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4184:9:16"
+ },
+ "scope": 5626,
+ "src": "4130:191:16",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5427,
+ "nodeType": "Block",
+ "src": "5032:90:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5422,
+ "name": "_domainSeparatorV4",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5389,
+ "src": "5082:18:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
+ "typeString": "function () view returns (bytes32)"
+ }
+ },
+ "id": 5423,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5082:20:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 5424,
+ "name": "structHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5415,
+ "src": "5104:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "expression": {
+ "id": 5420,
+ "name": "MessageHashUtils",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8703,
+ "src": "5049:16:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_MessageHashUtils_$8703_$",
+ "typeString": "type(library MessageHashUtils)"
+ }
+ },
+ "id": 5421,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5066:15:16",
+ "memberName": "toTypedDataHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8702,
+ "src": "5049:32:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bytes32)"
+ }
+ },
+ "id": 5425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5049:66:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5419,
+ "id": 5426,
+ "nodeType": "Return",
+ "src": "5042:73:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5413,
+ "nodeType": "StructuredDocumentation",
+ "src": "4327:614:16",
+ "text": " @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"
+ },
+ "id": 5428,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_hashTypedDataV4",
+ "nameLocation": "4955:16:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5416,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5415,
+ "mutability": "mutable",
+ "name": "structHash",
+ "nameLocation": "4980:10:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5428,
+ "src": "4972:18:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5414,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4972:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4971:20:16"
+ },
+ "returnParameters": {
+ "id": 5419,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5418,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5428,
+ "src": "5023:7:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5417,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5023:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5022:9:16"
+ },
+ "scope": 5626,
+ "src": "4946:176:16",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "baseFunctions": [
+ 5650
+ ],
+ "body": {
+ "id": 5488,
+ "nodeType": "Block",
+ "src": "5500:575:16",
+ "statements": [
+ {
+ "assignments": [
+ 5449
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5449,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "5532:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5488,
+ "src": "5510:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5448,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5447,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "5510:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "5510:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "5510:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5452,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5450,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "5536:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5536:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5510:45:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 5462,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 5457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5454,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5449,
+ "src": "5776:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5455,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5778:11:16",
+ "memberName": "_hashedName",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5304,
+ "src": "5776:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5793:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5776:18:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 5461,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5458,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5449,
+ "src": "5798:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5459,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5800:14:16",
+ "memberName": "_hashedVersion",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5307,
+ "src": "5798:16:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5460,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5818:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5798:21:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5776:43:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4549503731323a20556e696e697469616c697a6564",
+ "id": 5463,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5821:23:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade",
+ "typeString": "literal_string \"EIP712: Uninitialized\""
+ },
+ "value": "EIP712: Uninitialized"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade",
+ "typeString": "literal_string \"EIP712: Uninitialized\""
+ }
+ ],
+ "id": 5453,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5768:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 5464,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5768:77:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5465,
+ "nodeType": "ExpressionStatement",
+ "src": "5768:77:16"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "0f",
+ "id": 5466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "hexString",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5877:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c",
+ "typeString": "literal_string hex\"0f\""
+ },
+ "value": "\u000f"
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5467,
+ "name": "_EIP712Name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5505,
+ "src": "5907:11:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view returns (string memory)"
+ }
+ },
+ "id": 5468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5907:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5469,
+ "name": "_EIP712Version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5521,
+ "src": "5934:14:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view returns (string memory)"
+ }
+ },
+ "id": 5470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5934:16:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 5471,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "5964:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 5472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5970:7:16",
+ "memberName": "chainid",
+ "nodeType": "MemberAccess",
+ "src": "5964:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 5475,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "5999:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626",
+ "typeString": "contract EIP712Upgradeable"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626",
+ "typeString": "contract EIP712Upgradeable"
+ }
+ ],
+ "id": 5474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5991:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 5473,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5991:7:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5991:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 5479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6026:1:16",
+ "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": 5478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6018:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 5477,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6018:7:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5480,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6018:10:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 5484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6056:1:16",
+ "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": 5483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "6042:13:16",
+ "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": 5481,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6046:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5482,
+ "nodeType": "ArrayTypeName",
+ "src": "6046:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ "id": 5485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6042:16:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ }
+ ],
+ "id": 5486,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5863:205:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "tuple(literal_string hex\"0f\",string memory,string memory,uint256,address,bytes32,uint256[] memory)"
+ }
+ },
+ "functionReturnParameters": 5446,
+ "id": 5487,
+ "nodeType": "Return",
+ "src": "5856:212:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5429,
+ "nodeType": "StructuredDocumentation",
+ "src": "5128:39:16",
+ "text": " @inheritdoc IERC5267"
+ },
+ "functionSelector": "84b0196e",
+ "id": 5489,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "eip712Domain",
+ "nameLocation": "5181:12:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5430,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5193:2:16"
+ },
+ "returnParameters": {
+ "id": 5446,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5432,
+ "mutability": "mutable",
+ "name": "fields",
+ "nameLocation": "5277:6:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5270:13:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "typeName": {
+ "id": 5431,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "5270:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5434,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "5311:4:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5297:18:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5433,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "5297:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5436,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "5343:7:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5329:21:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5435,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "5329:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5438,
+ "mutability": "mutable",
+ "name": "chainId",
+ "nameLocation": "5372:7:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5364:15:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5437,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5364:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5440,
+ "mutability": "mutable",
+ "name": "verifyingContract",
+ "nameLocation": "5401:17:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5393:25:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5439,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5393:7:16",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5442,
+ "mutability": "mutable",
+ "name": "salt",
+ "nameLocation": "5440:4:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5432:12:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5441,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5432:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5445,
+ "mutability": "mutable",
+ "name": "extensions",
+ "nameLocation": "5475:10:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5489,
+ "src": "5458:27:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5443,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5458:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5444,
+ "nodeType": "ArrayTypeName",
+ "src": "5458:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5256:239:16"
+ },
+ "scope": 5626,
+ "src": "5172:903:16",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 5504,
+ "nodeType": "Block",
+ "src": "6368:86:16",
+ "statements": [
+ {
+ "assignments": [
+ 5497
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5497,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "6400:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5504,
+ "src": "6378:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5496,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5495,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "6378:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "6378:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "6378:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5500,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5498,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "6404:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6404:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6378:45:16"
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 5501,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5497,
+ "src": "6440:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5502,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6442:5:16",
+ "memberName": "_name",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5309,
+ "src": "6440:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 5494,
+ "id": 5503,
+ "nodeType": "Return",
+ "src": "6433:14:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5490,
+ "nodeType": "StructuredDocumentation",
+ "src": "6081:213:16",
+ "text": " @dev The name parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."
+ },
+ "id": 5505,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_EIP712Name",
+ "nameLocation": "6308:11:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5491,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6319:2:16"
+ },
+ "returnParameters": {
+ "id": 5494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5493,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5505,
+ "src": "6353:13:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5492,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "6353:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6352:15:16"
+ },
+ "scope": 5626,
+ "src": "6299:155:16",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5520,
+ "nodeType": "Block",
+ "src": "6753:89:16",
+ "statements": [
+ {
+ "assignments": [
+ 5513
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5513,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "6785:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5520,
+ "src": "6763:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5512,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5511,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "6763:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "6763:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "6763:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5516,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5514,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "6789:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6789:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6763:45:16"
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 5517,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5513,
+ "src": "6825:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5518,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6827:8:16",
+ "memberName": "_version",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5311,
+ "src": "6825:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 5510,
+ "id": 5519,
+ "nodeType": "Return",
+ "src": "6818:17:16"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5506,
+ "nodeType": "StructuredDocumentation",
+ "src": "6460:216:16",
+ "text": " @dev The version parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."
+ },
+ "id": 5521,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_EIP712Version",
+ "nameLocation": "6690:14:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5507,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6704:2:16"
+ },
+ "returnParameters": {
+ "id": 5510,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5509,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5521,
+ "src": "6738:13:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5508,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "6738:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6737:15:16"
+ },
+ "scope": 5626,
+ "src": "6681:161:16",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5572,
+ "nodeType": "Block",
+ "src": "7116:628:16",
+ "statements": [
+ {
+ "assignments": [
+ 5529
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5529,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "7148:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5572,
+ "src": "7126:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5528,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5527,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "7126:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "7126:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "7126:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5532,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5530,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "7152:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7152:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7126:45:16"
+ },
+ {
+ "assignments": [
+ 5534
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5534,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "7195:4:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5572,
+ "src": "7181:18:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5533,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7181:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5537,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5535,
+ "name": "_EIP712Name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5505,
+ "src": "7202:11:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view returns (string memory)"
+ }
+ },
+ "id": 5536,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7202:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7181:34:16"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5540,
+ "name": "name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5534,
+ "src": "7235:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 5539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7229:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 5538,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7229:5:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5541,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7229:11:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 5542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7241:6:16",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "7229:18:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5543,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7250:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "7229:22:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 5570,
+ "nodeType": "Block",
+ "src": "7313:425:16",
+ "statements": [
+ {
+ "assignments": [
+ 5554
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5554,
+ "mutability": "mutable",
+ "name": "hashedName",
+ "nameLocation": "7558:10:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5570,
+ "src": "7550:18:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5553,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7550:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5557,
+ "initialValue": {
+ "expression": {
+ "id": 5555,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5529,
+ "src": "7571:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5556,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7573:11:16",
+ "memberName": "_hashedName",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5304,
+ "src": "7571:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7550:34:16"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 5560,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5558,
+ "name": "hashedName",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5554,
+ "src": "7602:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7616:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "7602:15:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 5568,
+ "nodeType": "Block",
+ "src": "7675:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "",
+ "id": 5565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7710:2:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "typeString": "literal_string \"\""
+ },
+ "value": ""
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "typeString": "literal_string \"\""
+ }
+ ],
+ "id": 5564,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "7700:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7700:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5526,
+ "id": 5567,
+ "nodeType": "Return",
+ "src": "7693:20:16"
+ }
+ ]
+ },
+ "id": 5569,
+ "nodeType": "IfStatement",
+ "src": "7598:130:16",
+ "trueBody": {
+ "id": 5563,
+ "nodeType": "Block",
+ "src": "7619:50:16",
+ "statements": [
+ {
+ "expression": {
+ "id": 5561,
+ "name": "hashedName",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5554,
+ "src": "7644:10:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5526,
+ "id": 5562,
+ "nodeType": "Return",
+ "src": "7637:17:16"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 5571,
+ "nodeType": "IfStatement",
+ "src": "7225:513:16",
+ "trueBody": {
+ "id": 5552,
+ "nodeType": "Block",
+ "src": "7253:54:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5548,
+ "name": "name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5534,
+ "src": "7290:4:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 5547,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7284:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 5546,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7284:5:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5549,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7284:11:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 5545,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "7274:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7274:22:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5526,
+ "id": 5551,
+ "nodeType": "Return",
+ "src": "7267:29:16"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5522,
+ "nodeType": "StructuredDocumentation",
+ "src": "6848:204:16",
+ "text": " @dev The hash of the name parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead."
+ },
+ "id": 5573,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_EIP712NameHash",
+ "nameLocation": "7066:15:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5523,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7081:2:16"
+ },
+ "returnParameters": {
+ "id": 5526,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5525,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5573,
+ "src": "7107:7:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5524,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7107:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7106:9:16"
+ },
+ "scope": 5626,
+ "src": "7057:687:16",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5624,
+ "nodeType": "Block",
+ "src": "8027:661:16",
+ "statements": [
+ {
+ "assignments": [
+ 5581
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5581,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "8059:1:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5624,
+ "src": "8037:23:16",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ },
+ "typeName": {
+ "id": 5580,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 5579,
+ "name": "EIP712Storage",
+ "nameLocations": [
+ "8037:13:16"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5312,
+ "src": "8037:13:16"
+ },
+ "referencedDeclaration": 5312,
+ "src": "8037:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5584,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5582,
+ "name": "_getEIP712Storage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5323,
+ "src": "8063:17:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$",
+ "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)"
+ }
+ },
+ "id": 5583,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8063:19:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8037:45:16"
+ },
+ {
+ "assignments": [
+ 5586
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5586,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "8106:7:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5624,
+ "src": "8092:21:16",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5585,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "8092:6:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5589,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 5587,
+ "name": "_EIP712Version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5521,
+ "src": "8116:14:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view returns (string memory)"
+ }
+ },
+ "id": 5588,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8116:16:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8092:40:16"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5592,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5586,
+ "src": "8152:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 5591,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8146:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 5590,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "8146:5:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5593,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8146:14:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 5594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8161:6:16",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "8146:21:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8170:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "8146:25:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 5622,
+ "nodeType": "Block",
+ "src": "8236:446:16",
+ "statements": [
+ {
+ "assignments": [
+ 5606
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5606,
+ "mutability": "mutable",
+ "name": "hashedVersion",
+ "nameLocation": "8490:13:16",
+ "nodeType": "VariableDeclaration",
+ "scope": 5622,
+ "src": "8482:21:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5605,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8482:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5609,
+ "initialValue": {
+ "expression": {
+ "id": 5607,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5581,
+ "src": "8506:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr",
+ "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer"
+ }
+ },
+ "id": 5608,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8508:14:16",
+ "memberName": "_hashedVersion",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5307,
+ "src": "8506:16:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8482:40:16"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 5612,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5610,
+ "name": "hashedVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5606,
+ "src": "8540:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 5611,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8557:1:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "8540:18:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 5620,
+ "nodeType": "Block",
+ "src": "8619:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "",
+ "id": 5617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8654:2:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "typeString": "literal_string \"\""
+ },
+ "value": ""
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "typeString": "literal_string \"\""
+ }
+ ],
+ "id": 5616,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "8644:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5618,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8644:13:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5578,
+ "id": 5619,
+ "nodeType": "Return",
+ "src": "8637:20:16"
+ }
+ ]
+ },
+ "id": 5621,
+ "nodeType": "IfStatement",
+ "src": "8536:136:16",
+ "trueBody": {
+ "id": 5615,
+ "nodeType": "Block",
+ "src": "8560:53:16",
+ "statements": [
+ {
+ "expression": {
+ "id": 5613,
+ "name": "hashedVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5606,
+ "src": "8585:13:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5578,
+ "id": 5614,
+ "nodeType": "Return",
+ "src": "8578:20:16"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 5623,
+ "nodeType": "IfStatement",
+ "src": "8142:540:16",
+ "trueBody": {
+ "id": 5604,
+ "nodeType": "Block",
+ "src": "8173:57:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5600,
+ "name": "version",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5586,
+ "src": "8210:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 5599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8204:5:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 5598,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "8204:5:16",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 5601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8204:14:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 5597,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "8194:9:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 5602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8194:25:16",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 5578,
+ "id": 5603,
+ "nodeType": "Return",
+ "src": "8187:32:16"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5574,
+ "nodeType": "StructuredDocumentation",
+ "src": "7750:210:16",
+ "text": " @dev The hash of the version parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead."
+ },
+ "id": 5625,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_EIP712VersionHash",
+ "nameLocation": "7974:18:16",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5575,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7992:2:16"
+ },
+ "returnParameters": {
+ "id": 5578,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5577,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5625,
+ "src": "8018:7:16",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5576,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8018:7:16",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8017:9:16"
+ },
+ "scope": 5626,
+ "src": "7965:723:16",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 5627,
+ "src": "1959:6731:16",
+ "usedErrors": [
+ 4985,
+ 4988
+ ],
+ "usedEvents": [
+ 4993,
+ 5631
+ ]
+ }
+ ],
+ "src": "113:8578:16"
+ },
+ "id": 16
+ },
+ "@openzeppelin/contracts/interfaces/IERC5267.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol",
+ "exportedSymbols": {
+ "IERC5267": [
+ 5651
+ ]
+ },
+ "id": 5652,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 5628,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "107:24:17"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC5267",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 5651,
+ "linearizedBaseContracts": [
+ 5651
+ ],
+ "name": "IERC5267",
+ "nameLocation": "143:8:17",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 5629,
+ "nodeType": "StructuredDocumentation",
+ "src": "158:84:17",
+ "text": " @dev MAY be emitted to signal that the domain could have changed."
+ },
+ "eventSelector": "0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31",
+ "id": 5631,
+ "name": "EIP712DomainChanged",
+ "nameLocation": "253:19:17",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 5630,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "272:2:17"
+ },
+ "src": "247:28:17"
+ },
+ {
+ "documentation": {
+ "id": 5632,
+ "nodeType": "StructuredDocumentation",
+ "src": "281:140:17",
+ "text": " @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature."
+ },
+ "functionSelector": "84b0196e",
+ "id": 5650,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "eip712Domain",
+ "nameLocation": "435:12:17",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5633,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "447:2:17"
+ },
+ "returnParameters": {
+ "id": 5649,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5635,
+ "mutability": "mutable",
+ "name": "fields",
+ "nameLocation": "517:6:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "510:13:17",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "typeName": {
+ "id": 5634,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "510:6:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5637,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "551:4:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "537:18:17",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5636,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "537:6:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5639,
+ "mutability": "mutable",
+ "name": "version",
+ "nameLocation": "583:7:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "569:21:17",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 5638,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "569:6:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5641,
+ "mutability": "mutable",
+ "name": "chainId",
+ "nameLocation": "612:7:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "604:15:17",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5640,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "604:7:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5643,
+ "mutability": "mutable",
+ "name": "verifyingContract",
+ "nameLocation": "641:17:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "633:25:17",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5642,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "633:7:17",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5645,
+ "mutability": "mutable",
+ "name": "salt",
+ "nameLocation": "680:4:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "672:12:17",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5644,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "672:7:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5648,
+ "mutability": "mutable",
+ "name": "extensions",
+ "nameLocation": "715:10:17",
+ "nodeType": "VariableDeclaration",
+ "scope": 5650,
+ "src": "698:27:17",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5646,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "698:7:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5647,
+ "nodeType": "ArrayTypeName",
+ "src": "698:9:17",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "496:239:17"
+ },
+ "scope": 5651,
+ "src": "426:310:17",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 5652,
+ "src": "133:605:17",
+ "usedErrors": [],
+ "usedEvents": [
+ 5631
+ ]
+ }
+ ],
+ "src": "107:632:17"
+ },
+ "id": 17
+ },
+ "@openzeppelin/contracts/utils/Arrays.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol",
+ "exportedSymbols": {
+ "Arrays": [
+ 6529
+ ],
+ "Comparators": [
+ 6561
+ ],
+ "Math": [
+ 10360
+ ],
+ "SlotDerivation": [
+ 6743
+ ],
+ "StorageSlot": [
+ 6867
+ ]
+ },
+ "id": 6530,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 5653,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "183:24:18"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Comparators.sol",
+ "file": "./Comparators.sol",
+ "id": 5655,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 6530,
+ "sourceUnit": 6562,
+ "src": "209:46:18",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5654,
+ "name": "Comparators",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6561,
+ "src": "217:11:18",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/SlotDerivation.sol",
+ "file": "./SlotDerivation.sol",
+ "id": 5657,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 6530,
+ "sourceUnit": 6744,
+ "src": "256:52:18",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5656,
+ "name": "SlotDerivation",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6743,
+ "src": "264:14:18",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol",
+ "file": "./StorageSlot.sol",
+ "id": 5659,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 6530,
+ "sourceUnit": 6868,
+ "src": "309:46:18",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5658,
+ "name": "StorageSlot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6867,
+ "src": "317:11:18",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol",
+ "file": "./math/Math.sol",
+ "id": 5661,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 6530,
+ "sourceUnit": 10361,
+ "src": "356:37:18",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 5660,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "364:4:18",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Arrays",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 5662,
+ "nodeType": "StructuredDocumentation",
+ "src": "395:63:18",
+ "text": " @dev Collection of functions related to array types."
+ },
+ "fullyImplemented": true,
+ "id": 6529,
+ "linearizedBaseContracts": [
+ 6529
+ ],
+ "name": "Arrays",
+ "nameLocation": "467:6:18",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 5665,
+ "libraryName": {
+ "id": 5663,
+ "name": "SlotDerivation",
+ "nameLocations": [
+ "486:14:18"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6743,
+ "src": "486:14:18"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "480:33:18",
+ "typeName": {
+ "id": 5664,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "505:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ },
+ {
+ "global": false,
+ "id": 5668,
+ "libraryName": {
+ "id": 5666,
+ "name": "StorageSlot",
+ "nameLocations": [
+ "524:11:18"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6867,
+ "src": "524:11:18"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "518:30:18",
+ "typeName": {
+ "id": 5667,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ },
+ {
+ "body": {
+ "id": 5700,
+ "nodeType": "Block",
+ "src": "1628:83:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5690,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5672,
+ "src": "1656:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ ],
+ "id": 5689,
+ "name": "_begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5925,
+ "src": "1649:6:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory) pure returns (uint256)"
+ }
+ },
+ "id": 5691,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1649:13:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 5693,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5672,
+ "src": "1669:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ ],
+ "id": 5692,
+ "name": "_end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5945,
+ "src": "1664:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory) pure returns (uint256)"
+ }
+ },
+ "id": 5694,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1664:11:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5695,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5682,
+ "src": "1677:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5688,
+ "name": "_quickSort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5914,
+ "src": "1638:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$",
+ "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"
+ }
+ },
+ "id": 5696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1638:44:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5697,
+ "nodeType": "ExpressionStatement",
+ "src": "1638:44:18"
+ },
+ {
+ "expression": {
+ "id": 5698,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5672,
+ "src": "1699:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "functionReturnParameters": 5687,
+ "id": 5699,
+ "nodeType": "Return",
+ "src": "1692:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5669,
+ "nodeType": "StructuredDocumentation",
+ "src": "554:915:18",
+ "text": " @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."
+ },
+ "id": 5701,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "1483:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5683,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5672,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "1514:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5701,
+ "src": "1497:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5670,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1497:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5671,
+ "nodeType": "ArrayTypeName",
+ "src": "1497:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5682,
+ "mutability": "mutable",
+ "name": "comp",
+ "nameLocation": "1576:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5701,
+ "src": "1529:51:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 5681,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 5677,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5674,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5681,
+ "src": "1538:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5673,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1538:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5676,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5681,
+ "src": "1547:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5675,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1547:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1537:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 5680,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5679,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5681,
+ "src": "1570:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5678,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1570:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1569:6:18"
+ },
+ "src": "1529:51:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1487:99:18"
+ },
+ "returnParameters": {
+ "id": 5687,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5686,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5701,
+ "src": "1610:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5684,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1610:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5685,
+ "nodeType": "ArrayTypeName",
+ "src": "1610:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1609:18:18"
+ },
+ "scope": 6529,
+ "src": "1474:237:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5719,
+ "nodeType": "Block",
+ "src": "1894:66:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5712,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5705,
+ "src": "1909:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 5713,
+ "name": "Comparators",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6561,
+ "src": "1916:11:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$",
+ "typeString": "type(library Comparators)"
+ }
+ },
+ "id": 5714,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1928:2:18",
+ "memberName": "lt",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6546,
+ "src": "1916:14:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5711,
+ "name": "sort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5701,
+ 5720,
+ 5752,
+ 5773,
+ 5805,
+ 5826
+ ],
+ "referencedDeclaration": 5701,
+ "src": "1904:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5715,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1904:27:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5716,
+ "nodeType": "ExpressionStatement",
+ "src": "1904:27:18"
+ },
+ {
+ "expression": {
+ "id": 5717,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5705,
+ "src": "1948:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "functionReturnParameters": 5710,
+ "id": 5718,
+ "nodeType": "Return",
+ "src": "1941:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5702,
+ "nodeType": "StructuredDocumentation",
+ "src": "1717:93:18",
+ "text": " @dev Variant of {sort} that sorts an array of uint256 in increasing order."
+ },
+ "id": 5720,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "1824:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5706,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5705,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "1846:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5720,
+ "src": "1829:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1829:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5704,
+ "nodeType": "ArrayTypeName",
+ "src": "1829:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1828:24:18"
+ },
+ "returnParameters": {
+ "id": 5710,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5709,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5720,
+ "src": "1876:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5707,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1876:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5708,
+ "nodeType": "ArrayTypeName",
+ "src": "1876:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1875:18:18"
+ },
+ "scope": 6529,
+ "src": "1815:145:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5751,
+ "nodeType": "Block",
+ "src": "3040:97:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5742,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5724,
+ "src": "3075:5:18",
+ "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"
+ }
+ ],
+ "id": 5741,
+ "name": "_castToUint256Array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5977,
+ 5989
+ ],
+ "referencedDeclaration": 5977,
+ "src": "3055:19:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (address[] memory) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3055:26:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 5745,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5734,
+ "src": "3102:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ }
+ ],
+ "id": 5744,
+ "name": "_castToUint256Comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6015,
+ 6041
+ ],
+ "referencedDeclaration": 6015,
+ "src": "3083:18:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$",
+ "typeString": "function (function (address,address) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))"
+ }
+ },
+ "id": 5746,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3083:24:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5740,
+ "name": "sort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5701,
+ 5720,
+ 5752,
+ 5773,
+ 5805,
+ 5826
+ ],
+ "referencedDeclaration": 5701,
+ "src": "3050:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5747,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3050:58:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5748,
+ "nodeType": "ExpressionStatement",
+ "src": "3050:58:18"
+ },
+ {
+ "expression": {
+ "id": 5749,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5724,
+ "src": "3125:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "functionReturnParameters": 5739,
+ "id": 5750,
+ "nodeType": "Return",
+ "src": "3118:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5721,
+ "nodeType": "StructuredDocumentation",
+ "src": "1966:915:18",
+ "text": " @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."
+ },
+ "id": 5752,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "2895:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5735,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5724,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "2926:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5752,
+ "src": "2909:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5722,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2909:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5723,
+ "nodeType": "ArrayTypeName",
+ "src": "2909:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5734,
+ "mutability": "mutable",
+ "name": "comp",
+ "nameLocation": "2988:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5752,
+ "src": "2941:51:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 5733,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 5729,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5726,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5733,
+ "src": "2950:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5725,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2950:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5728,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5733,
+ "src": "2959:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5727,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2959:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2949:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 5732,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5731,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5733,
+ "src": "2982:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5730,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2982:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2981:6:18"
+ },
+ "src": "2941:51:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2899:99:18"
+ },
+ "returnParameters": {
+ "id": 5739,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5738,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5752,
+ "src": "3022:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5736,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3022:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5737,
+ "nodeType": "ArrayTypeName",
+ "src": "3022:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3021:18:18"
+ },
+ "scope": 6529,
+ "src": "2886:251:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5772,
+ "nodeType": "Block",
+ "src": "3320:87:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5764,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5756,
+ "src": "3355:5:18",
+ "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"
+ }
+ ],
+ "id": 5763,
+ "name": "_castToUint256Array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5977,
+ 5989
+ ],
+ "referencedDeclaration": 5977,
+ "src": "3335:19:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (address[] memory) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5765,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3335:26:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 5766,
+ "name": "Comparators",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6561,
+ "src": "3363:11:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$",
+ "typeString": "type(library Comparators)"
+ }
+ },
+ "id": 5767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3375:2:18",
+ "memberName": "lt",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6546,
+ "src": "3363:14:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5762,
+ "name": "sort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5701,
+ 5720,
+ 5752,
+ 5773,
+ 5805,
+ 5826
+ ],
+ "referencedDeclaration": 5701,
+ "src": "3330:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5768,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3330:48:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5769,
+ "nodeType": "ExpressionStatement",
+ "src": "3330:48:18"
+ },
+ {
+ "expression": {
+ "id": 5770,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5756,
+ "src": "3395:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "functionReturnParameters": 5761,
+ "id": 5771,
+ "nodeType": "Return",
+ "src": "3388:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5753,
+ "nodeType": "StructuredDocumentation",
+ "src": "3143:93:18",
+ "text": " @dev Variant of {sort} that sorts an array of address in increasing order."
+ },
+ "id": 5773,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "3250:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5757,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5756,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "3272:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5773,
+ "src": "3255:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5754,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3255:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5755,
+ "nodeType": "ArrayTypeName",
+ "src": "3255:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3254:24:18"
+ },
+ "returnParameters": {
+ "id": 5761,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5760,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5773,
+ "src": "3302:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5758,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3302:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5759,
+ "nodeType": "ArrayTypeName",
+ "src": "3302:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3301:18:18"
+ },
+ "scope": 6529,
+ "src": "3241:166:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5804,
+ "nodeType": "Block",
+ "src": "4487:97:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5795,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5777,
+ "src": "4522:5:18",
+ "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"
+ }
+ ],
+ "id": 5794,
+ "name": "_castToUint256Array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5977,
+ 5989
+ ],
+ "referencedDeclaration": 5989,
+ "src": "4502:19:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (bytes32[] memory) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5796,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4502:26:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 5798,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5787,
+ "src": "4549:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ }
+ ],
+ "id": 5797,
+ "name": "_castToUint256Comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6015,
+ 6041
+ ],
+ "referencedDeclaration": 6041,
+ "src": "4530:18:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$",
+ "typeString": "function (function (bytes32,bytes32) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))"
+ }
+ },
+ "id": 5799,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4530:24:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5793,
+ "name": "sort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5701,
+ 5720,
+ 5752,
+ 5773,
+ 5805,
+ 5826
+ ],
+ "referencedDeclaration": 5701,
+ "src": "4497:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4497:58:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5801,
+ "nodeType": "ExpressionStatement",
+ "src": "4497:58:18"
+ },
+ {
+ "expression": {
+ "id": 5802,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5777,
+ "src": "4572:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "functionReturnParameters": 5792,
+ "id": 5803,
+ "nodeType": "Return",
+ "src": "4565:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5774,
+ "nodeType": "StructuredDocumentation",
+ "src": "3413:915:18",
+ "text": " @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."
+ },
+ "id": 5805,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "4342:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5788,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5777,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "4373:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5805,
+ "src": "4356:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5775,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4356:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5776,
+ "nodeType": "ArrayTypeName",
+ "src": "4356:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5787,
+ "mutability": "mutable",
+ "name": "comp",
+ "nameLocation": "4435:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5805,
+ "src": "4388:51:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 5786,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 5782,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5779,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5786,
+ "src": "4397:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5778,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4397:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5781,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5786,
+ "src": "4406:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 5780,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4406:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4396:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 5785,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5784,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5786,
+ "src": "4429:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5783,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4429:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4428:6:18"
+ },
+ "src": "4388:51:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4346:99:18"
+ },
+ "returnParameters": {
+ "id": 5792,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5791,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5805,
+ "src": "4469:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5789,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4469:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5790,
+ "nodeType": "ArrayTypeName",
+ "src": "4469:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4468:18:18"
+ },
+ "scope": 6529,
+ "src": "4333:251:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5825,
+ "nodeType": "Block",
+ "src": "4767:87:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5817,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5809,
+ "src": "4802:5:18",
+ "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"
+ }
+ ],
+ "id": 5816,
+ "name": "_castToUint256Array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5977,
+ 5989
+ ],
+ "referencedDeclaration": 5989,
+ "src": "4782:19:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (bytes32[] memory) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5818,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4782:26:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 5819,
+ "name": "Comparators",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6561,
+ "src": "4810:11:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$",
+ "typeString": "type(library Comparators)"
+ }
+ },
+ "id": 5820,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4822:2:18",
+ "memberName": "lt",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6546,
+ "src": "4810:14:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5815,
+ "name": "sort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 5701,
+ 5720,
+ 5752,
+ 5773,
+ 5805,
+ 5826
+ ],
+ "referencedDeclaration": 5701,
+ "src": "4777:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"
+ }
+ },
+ "id": 5821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4777:48:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5822,
+ "nodeType": "ExpressionStatement",
+ "src": "4777:48:18"
+ },
+ {
+ "expression": {
+ "id": 5823,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5809,
+ "src": "4842:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "functionReturnParameters": 5814,
+ "id": 5824,
+ "nodeType": "Return",
+ "src": "4835:12:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5806,
+ "nodeType": "StructuredDocumentation",
+ "src": "4590:93:18",
+ "text": " @dev Variant of {sort} that sorts an array of bytes32 in increasing order."
+ },
+ "id": 5826,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sort",
+ "nameLocation": "4697:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5810,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5809,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "4719:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5826,
+ "src": "4702:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5807,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4702:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5808,
+ "nodeType": "ArrayTypeName",
+ "src": "4702:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4701:24:18"
+ },
+ "returnParameters": {
+ "id": 5814,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5813,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5826,
+ "src": "4749:16:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5811,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4749:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5812,
+ "nodeType": "ArrayTypeName",
+ "src": "4749:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4748:18:18"
+ },
+ "scope": 6529,
+ "src": "4688:166:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 5913,
+ "nodeType": "Block",
+ "src": "5470:889:18",
+ "statements": [
+ {
+ "id": 5912,
+ "nodeType": "UncheckedBlock",
+ "src": "5480:873:18",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5848,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5844,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5831,
+ "src": "5508:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 5845,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "5514:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5508:11:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "30783430",
+ "id": 5847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5522:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "0x40"
+ },
+ "src": "5508:18:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5850,
+ "nodeType": "IfStatement",
+ "src": "5504:31:18",
+ "trueBody": {
+ "functionReturnParameters": 5843,
+ "id": 5849,
+ "nodeType": "Return",
+ "src": "5528:7:18"
+ }
+ },
+ {
+ "assignments": [
+ 5852
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5852,
+ "mutability": "mutable",
+ "name": "pivot",
+ "nameLocation": "5599:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5912,
+ "src": "5591:13:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5851,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5591:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5856,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 5854,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "5614:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 5853,
+ "name": "_mload",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5955,
+ "src": "5607:6:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 5855,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5607:13:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5591:29:18"
+ },
+ {
+ "assignments": [
+ 5858
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5858,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "5715:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5912,
+ "src": "5707:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5857,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5707:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5860,
+ "initialValue": {
+ "id": 5859,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "5721:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5707:19:18"
+ },
+ {
+ "body": {
+ "id": 5891,
+ "nodeType": "Block",
+ "src": "5795:331:18",
+ "statements": [
+ {
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 5876,
+ "name": "it",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5862,
+ "src": "5829:2:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 5875,
+ "name": "_mload",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5955,
+ "src": "5822:6:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 5877,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5822:10:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5878,
+ "name": "pivot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5852,
+ "src": "5834:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 5874,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5841,
+ "src": "5817:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ },
+ "id": 5879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5817:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5890,
+ "nodeType": "IfStatement",
+ "src": "5813:299:18",
+ "trueBody": {
+ "id": 5889,
+ "nodeType": "Block",
+ "src": "5842:270:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 5882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 5880,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5858,
+ "src": "6046:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "30783230",
+ "id": 5881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6053:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "6046:11:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5883,
+ "nodeType": "ExpressionStatement",
+ "src": "6046:11:18"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5885,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5858,
+ "src": "6085:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5886,
+ "name": "it",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5862,
+ "src": "6090:2:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 5884,
+ "name": "_swap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5965,
+ "src": "6079:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256) pure"
+ }
+ },
+ "id": 5887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6079:14:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5888,
+ "nodeType": "ExpressionStatement",
+ "src": "6079:14:18"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5869,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5867,
+ "name": "it",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5862,
+ "src": "5773:2:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 5868,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5831,
+ "src": "5778:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5773:8:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 5892,
+ "initializationExpression": {
+ "assignments": [
+ 5862
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 5862,
+ "mutability": "mutable",
+ "name": "it",
+ "nameLocation": "5754:2:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5892,
+ "src": "5746:10:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5861,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5746:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 5866,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5863,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "5759:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "30783230",
+ "id": 5864,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5767:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "5759:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5746:25:18"
+ },
+ "isSimpleCounterLoop": false,
+ "loopExpression": {
+ "expression": {
+ "id": 5872,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 5870,
+ "name": "it",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5862,
+ "src": "5783:2:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "30783230",
+ "id": 5871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5789:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "5783:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5873,
+ "nodeType": "ExpressionStatement",
+ "src": "5783:10:18"
+ },
+ "nodeType": "ForStatement",
+ "src": "5741:385:18"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5894,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "6146:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5895,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5858,
+ "src": "6153:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 5893,
+ "name": "_swap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5965,
+ "src": "6140:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256) pure"
+ }
+ },
+ "id": 5896,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6140:17:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5897,
+ "nodeType": "ExpressionStatement",
+ "src": "6140:17:18"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 5899,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5829,
+ "src": "6207:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5900,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5858,
+ "src": "6214:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5901,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5841,
+ "src": "6219:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5898,
+ "name": "_quickSort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5914,
+ "src": "6196:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$",
+ "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"
+ }
+ },
+ "id": 5902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6196:28:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5903,
+ "nodeType": "ExpressionStatement",
+ "src": "6196:28:18"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 5905,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5858,
+ "src": "6284:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "30783230",
+ "id": 5906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6290:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "6284:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5908,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5831,
+ "src": "6296:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 5909,
+ "name": "comp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5841,
+ "src": "6301:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ }
+ ],
+ "id": 5904,
+ "name": "_quickSort",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5914,
+ "src": "6273:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$",
+ "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"
+ }
+ },
+ "id": 5910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6273:33:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 5911,
+ "nodeType": "ExpressionStatement",
+ "src": "6273:33:18"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5827,
+ "nodeType": "StructuredDocumentation",
+ "src": "4860:491:18",
+ "text": " @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array."
+ },
+ "id": 5914,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_quickSort",
+ "nameLocation": "5365:10:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5842,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5829,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "5384:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5914,
+ "src": "5376:13:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5828,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5376:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5831,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "5399:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5914,
+ "src": "5391:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5830,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5391:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5841,
+ "mutability": "mutable",
+ "name": "comp",
+ "nameLocation": "5451:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5914,
+ "src": "5404:51:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 5840,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 5836,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5833,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5840,
+ "src": "5413:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5832,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5413:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5835,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5840,
+ "src": "5422:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5834,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5422:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5412:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 5839,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5838,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5840,
+ "src": "5445:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5837,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5445:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5444:6:18"
+ },
+ "src": "5404:51:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5375:81:18"
+ },
+ "returnParameters": {
+ "id": 5843,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5470:0:18"
+ },
+ "scope": 6529,
+ "src": "5356:1003:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5924,
+ "nodeType": "Block",
+ "src": "6532:88:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "6567:47:18",
+ "nodeType": "YulBlock",
+ "src": "6567:47:18",
+ "statements": [
+ {
+ "nativeSrc": "6581:23:18",
+ "nodeType": "YulAssignment",
+ "src": "6581:23:18",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nativeSrc": "6592:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "6592:5:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6599:4:18",
+ "nodeType": "YulLiteral",
+ "src": "6599:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6588:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "6588:3:18"
+ },
+ "nativeSrc": "6588:16:18",
+ "nodeType": "YulFunctionCall",
+ "src": "6588:16:18"
+ },
+ "variableNames": [
+ {
+ "name": "ptr",
+ "nativeSrc": "6581:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "6581:3:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5918,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6592:5:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5921,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6581:3:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 5923,
+ "nodeType": "InlineAssembly",
+ "src": "6542:72:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5915,
+ "nodeType": "StructuredDocumentation",
+ "src": "6365:87:18",
+ "text": " @dev Pointer to the memory location of the first element of `array`."
+ },
+ "id": 5925,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_begin",
+ "nameLocation": "6466:6:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5919,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5918,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "6490:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5925,
+ "src": "6473:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5916,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6473:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5917,
+ "nodeType": "ArrayTypeName",
+ "src": "6473:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6472:24:18"
+ },
+ "returnParameters": {
+ "id": 5922,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5921,
+ "mutability": "mutable",
+ "name": "ptr",
+ "nameLocation": "6527:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5925,
+ "src": "6519:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5920,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6519:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6518:13:18"
+ },
+ "scope": 6529,
+ "src": "6457:163:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5944,
+ "nodeType": "Block",
+ "src": "6892:93:18",
+ "statements": [
+ {
+ "id": 5943,
+ "nodeType": "UncheckedBlock",
+ "src": "6902:77:18",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5941,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 5935,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5929,
+ "src": "6940:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ ],
+ "id": 5934,
+ "name": "_begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5925,
+ "src": "6933:6:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory) pure returns (uint256)"
+ }
+ },
+ "id": 5936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6933:13:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 5940,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 5937,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5929,
+ "src": "6949:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 5938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6955:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6949:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "30783230",
+ "id": 5939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6964:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "6949:19:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6933:35:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 5933,
+ "id": 5942,
+ "nodeType": "Return",
+ "src": "6926:42:18"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5926,
+ "nodeType": "StructuredDocumentation",
+ "src": "6626:188:18",
+ "text": " @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array."
+ },
+ "id": 5945,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_end",
+ "nameLocation": "6828:4:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5930,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5929,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "6850:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5945,
+ "src": "6833:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5927,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6833:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5928,
+ "nodeType": "ArrayTypeName",
+ "src": "6833:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6832:24:18"
+ },
+ "returnParameters": {
+ "id": 5933,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5932,
+ "mutability": "mutable",
+ "name": "ptr",
+ "nameLocation": "6887:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5945,
+ "src": "6879:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5931,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6879:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6878:13:18"
+ },
+ "scope": 6529,
+ "src": "6819:166:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5954,
+ "nodeType": "Block",
+ "src": "7136:68:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "7155:43:18",
+ "nodeType": "YulBlock",
+ "src": "7155:43:18",
+ "statements": [
+ {
+ "nativeSrc": "7169:19:18",
+ "nodeType": "YulAssignment",
+ "src": "7169:19:18",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "7184:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "7184:3:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7178:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "7178:5:18"
+ },
+ "nativeSrc": "7178:10:18",
+ "nodeType": "YulFunctionCall",
+ "src": "7178:10:18"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "7169:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "7169:5:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5948,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7184:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5951,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7169:5:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 5953,
+ "nodeType": "InlineAssembly",
+ "src": "7146:52:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5946,
+ "nodeType": "StructuredDocumentation",
+ "src": "6991:74:18",
+ "text": " @dev Load memory word (as a uint256) at location `ptr`."
+ },
+ "id": 5955,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_mload",
+ "nameLocation": "7079:6:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5949,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5948,
+ "mutability": "mutable",
+ "name": "ptr",
+ "nameLocation": "7094:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5955,
+ "src": "7086:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5947,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7086:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7085:13:18"
+ },
+ "returnParameters": {
+ "id": 5952,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5951,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7129:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5955,
+ "src": "7121:13:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5950,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7121:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7120:15:18"
+ },
+ "scope": 6529,
+ "src": "7070:134:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5964,
+ "nodeType": "Block",
+ "src": "7348:178:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "7367:153:18",
+ "nodeType": "YulBlock",
+ "src": "7367:153:18",
+ "statements": [
+ {
+ "nativeSrc": "7381:25:18",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7381:25:18",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr1",
+ "nativeSrc": "7401:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "7401:4:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7395:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "7395:5:18"
+ },
+ "nativeSrc": "7395:11:18",
+ "nodeType": "YulFunctionCall",
+ "src": "7395:11:18"
+ },
+ "variables": [
+ {
+ "name": "value1",
+ "nativeSrc": "7385:6:18",
+ "nodeType": "YulTypedName",
+ "src": "7385:6:18",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7419:25:18",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7419:25:18",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr2",
+ "nativeSrc": "7439:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "7439:4:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7433:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "7433:5:18"
+ },
+ "nativeSrc": "7433:11:18",
+ "nodeType": "YulFunctionCall",
+ "src": "7433:11:18"
+ },
+ "variables": [
+ {
+ "name": "value2",
+ "nativeSrc": "7423:6:18",
+ "nodeType": "YulTypedName",
+ "src": "7423:6:18",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "ptr1",
+ "nativeSrc": "7464:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "7464:4:18"
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "7470:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7470:6:18"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7457:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7457:6:18"
+ },
+ "nativeSrc": "7457:20:18",
+ "nodeType": "YulFunctionCall",
+ "src": "7457:20:18"
+ },
+ "nativeSrc": "7457:20:18",
+ "nodeType": "YulExpressionStatement",
+ "src": "7457:20:18"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "ptr2",
+ "nativeSrc": "7497:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "7497:4:18"
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "7503:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7503:6:18"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7490:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7490:6:18"
+ },
+ "nativeSrc": "7490:20:18",
+ "nodeType": "YulFunctionCall",
+ "src": "7490:20:18"
+ },
+ "nativeSrc": "7490:20:18",
+ "nodeType": "YulExpressionStatement",
+ "src": "7490:20:18"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5958,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7401:4:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5958,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7464:4:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5960,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7439:4:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5960,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7497:4:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 5963,
+ "nodeType": "InlineAssembly",
+ "src": "7358:162:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5956,
+ "nodeType": "StructuredDocumentation",
+ "src": "7210:77:18",
+ "text": " @dev Swaps the elements memory location `ptr1` and `ptr2`."
+ },
+ "id": 5965,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_swap",
+ "nameLocation": "7301:5:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5961,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5958,
+ "mutability": "mutable",
+ "name": "ptr1",
+ "nameLocation": "7315:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5965,
+ "src": "7307:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5957,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7307:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5960,
+ "mutability": "mutable",
+ "name": "ptr2",
+ "nameLocation": "7329:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5965,
+ "src": "7321:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 5959,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7321:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7306:28:18"
+ },
+ "returnParameters": {
+ "id": 5962,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7348:0:18"
+ },
+ "scope": 6529,
+ "src": "7292:234:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5976,
+ "nodeType": "Block",
+ "src": "7713:64:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "7732:39:18",
+ "nodeType": "YulBlock",
+ "src": "7732:39:18",
+ "statements": [
+ {
+ "nativeSrc": "7746:15:18",
+ "nodeType": "YulAssignment",
+ "src": "7746:15:18",
+ "value": {
+ "name": "input",
+ "nativeSrc": "7756:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "7756:5:18"
+ },
+ "variableNames": [
+ {
+ "name": "output",
+ "nativeSrc": "7746:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7746:6:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5969,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7756:5:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5973,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7746:6:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 5975,
+ "nodeType": "InlineAssembly",
+ "src": "7723:48:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5966,
+ "nodeType": "StructuredDocumentation",
+ "src": "7532:76:18",
+ "text": "@dev Helper: low level cast address memory array to uint256 memory array"
+ },
+ "id": 5977,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_castToUint256Array",
+ "nameLocation": "7622:19:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5970,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5969,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "7659:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5977,
+ "src": "7642:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5967,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7642:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 5968,
+ "nodeType": "ArrayTypeName",
+ "src": "7642:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7641:24:18"
+ },
+ "returnParameters": {
+ "id": 5974,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5973,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "7705:6:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5977,
+ "src": "7688:23:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5971,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7688:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5972,
+ "nodeType": "ArrayTypeName",
+ "src": "7688:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7687:25:18"
+ },
+ "scope": 6529,
+ "src": "7613:164:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 5988,
+ "nodeType": "Block",
+ "src": "7964:64:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "7983:39:18",
+ "nodeType": "YulBlock",
+ "src": "7983:39:18",
+ "statements": [
+ {
+ "nativeSrc": "7997:15:18",
+ "nodeType": "YulAssignment",
+ "src": "7997:15:18",
+ "value": {
+ "name": "input",
+ "nativeSrc": "8007:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "8007:5:18"
+ },
+ "variableNames": [
+ {
+ "name": "output",
+ "nativeSrc": "7997:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "7997:6:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 5981,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8007:5:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 5985,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7997:6:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 5987,
+ "nodeType": "InlineAssembly",
+ "src": "7974:48:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5978,
+ "nodeType": "StructuredDocumentation",
+ "src": "7783:76:18",
+ "text": "@dev Helper: low level cast bytes32 memory array to uint256 memory array"
+ },
+ "id": 5989,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_castToUint256Array",
+ "nameLocation": "7873:19:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 5982,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5981,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "7910:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5989,
+ "src": "7893:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5979,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7893:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 5980,
+ "nodeType": "ArrayTypeName",
+ "src": "7893:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7892:24:18"
+ },
+ "returnParameters": {
+ "id": 5986,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5985,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "7956:6:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 5989,
+ "src": "7939:23:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 5983,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7939:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 5984,
+ "nodeType": "ArrayTypeName",
+ "src": "7939:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7938:25:18"
+ },
+ "scope": 6529,
+ "src": "7864:164:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 6014,
+ "nodeType": "Block",
+ "src": "8290:64:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "8309:39:18",
+ "nodeType": "YulBlock",
+ "src": "8309:39:18",
+ "statements": [
+ {
+ "nativeSrc": "8323:15:18",
+ "nodeType": "YulAssignment",
+ "src": "8323:15:18",
+ "value": {
+ "name": "input",
+ "nativeSrc": "8333:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "8333:5:18"
+ },
+ "variableNames": [
+ {
+ "name": "output",
+ "nativeSrc": "8323:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "8323:6:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6000,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8333:5:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6011,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8323:6:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 6013,
+ "nodeType": "InlineAssembly",
+ "src": "8300:48:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 5990,
+ "nodeType": "StructuredDocumentation",
+ "src": "8034:78:18",
+ "text": "@dev Helper: low level cast address comp function to uint256 comp function"
+ },
+ "id": 6015,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_castToUint256Comp",
+ "nameLocation": "8126:18:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6001,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6000,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "8201:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6015,
+ "src": "8154:52:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 5999,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 5995,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5992,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5999,
+ "src": "8163:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5991,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8163:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5994,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5999,
+ "src": "8172:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 5993,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8172:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8162:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 5998,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5997,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 5999,
+ "src": "8195:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 5996,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8195:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8194:6:18"
+ },
+ "src": "8154:52:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address,address) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8144:68:18"
+ },
+ "returnParameters": {
+ "id": 6012,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6011,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "8282:6:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6015,
+ "src": "8235:53:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 6010,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 6006,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6003,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6010,
+ "src": "8244:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6002,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8244:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6005,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6010,
+ "src": "8253:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6004,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8253:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8243:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 6009,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6008,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6010,
+ "src": "8276:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6007,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8276:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8275:6:18"
+ },
+ "src": "8235:53:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8234:55:18"
+ },
+ "scope": 6529,
+ "src": "8117:237:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 6040,
+ "nodeType": "Block",
+ "src": "8616:64:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "8635:39:18",
+ "nodeType": "YulBlock",
+ "src": "8635:39:18",
+ "statements": [
+ {
+ "nativeSrc": "8649:15:18",
+ "nodeType": "YulAssignment",
+ "src": "8649:15:18",
+ "value": {
+ "name": "input",
+ "nativeSrc": "8659:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "8659:5:18"
+ },
+ "variableNames": [
+ {
+ "name": "output",
+ "nativeSrc": "8649:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "8649:6:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6026,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8659:5:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6037,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8649:6:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 6039,
+ "nodeType": "InlineAssembly",
+ "src": "8626:48:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6016,
+ "nodeType": "StructuredDocumentation",
+ "src": "8360:78:18",
+ "text": "@dev Helper: low level cast bytes32 comp function to uint256 comp function"
+ },
+ "id": 6041,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_castToUint256Comp",
+ "nameLocation": "8452:18:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6027,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6026,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "8527:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6041,
+ "src": "8480:52:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 6025,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 6021,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6018,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6025,
+ "src": "8489:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6017,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8489:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6020,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6025,
+ "src": "8498:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6019,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8498:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8488:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 6024,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6023,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6025,
+ "src": "8521:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6022,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8521:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8520:6:18"
+ },
+ "src": "8480:52:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32,bytes32) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8470:68:18"
+ },
+ "returnParameters": {
+ "id": 6038,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6037,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "8608:6:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6041,
+ "src": "8561:53:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "typeName": {
+ "id": 6036,
+ "nodeType": "FunctionTypeName",
+ "parameterTypes": {
+ "id": 6032,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6029,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6036,
+ "src": "8570:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6028,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8570:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6031,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6036,
+ "src": "8579:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6030,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8579:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8569:18:18"
+ },
+ "returnParameterTypes": {
+ "id": 6035,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6034,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6036,
+ "src": "8602:4:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6033,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8602:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8601:6:18"
+ },
+ "src": "8561:53:18",
+ "stateMutability": "pure",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256) pure returns (bool)"
+ },
+ "visibility": "internal"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8560:55:18"
+ },
+ "scope": 6529,
+ "src": "8443:237:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 6123,
+ "nodeType": "Block",
+ "src": "9405:834:18",
+ "statements": [
+ {
+ "assignments": [
+ 6053
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6053,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "9423:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6123,
+ "src": "9415:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6052,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9415:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6055,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 6054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9429:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9415:15:18"
+ },
+ {
+ "assignments": [
+ 6057
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6057,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "9448:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6123,
+ "src": "9440:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6056,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9440:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6060,
+ "initialValue": {
+ "expression": {
+ "id": 6058,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6045,
+ "src": "9455:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 6059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9461:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "9455:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9440:27:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6061,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6057,
+ "src": "9482:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9490:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "9482:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6067,
+ "nodeType": "IfStatement",
+ "src": "9478:48:18",
+ "trueBody": {
+ "id": 6066,
+ "nodeType": "Block",
+ "src": "9493:33:18",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 6064,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9514:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 6051,
+ "id": 6065,
+ "nodeType": "Return",
+ "src": "9507:8:18"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 6099,
+ "nodeType": "Block",
+ "src": "9555:423:18",
+ "statements": [
+ {
+ "assignments": [
+ 6072
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6072,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "9577:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6099,
+ "src": "9569:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6071,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9569:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6078,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6075,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "9596:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 6076,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6057,
+ "src": "9601:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6073,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "9583:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9588:7:18",
+ "memberName": "average",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9089,
+ "src": "9583:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6077,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9583:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9569:37:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 6080,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6045,
+ "src": "9844:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ {
+ "id": 6081,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6072,
+ "src": "9851:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6079,
+ "name": "unsafeAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6404,
+ 6430,
+ 6456
+ ],
+ "referencedDeclaration": 6456,
+ "src": "9831:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$",
+ "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"
+ }
+ },
+ "id": 6082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9831:24:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot storage pointer"
+ }
+ },
+ "id": 6083,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9856:5:18",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6757,
+ "src": "9831:30:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 6084,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6047,
+ "src": "9864:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9831:40:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6097,
+ "nodeType": "Block",
+ "src": "9922:46:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6091,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "9940:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6092,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6072,
+ "src": "9946:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9952:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "9946:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9940:13:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6096,
+ "nodeType": "ExpressionStatement",
+ "src": "9940:13:18"
+ }
+ ]
+ },
+ "id": 6098,
+ "nodeType": "IfStatement",
+ "src": "9827:141:18",
+ "trueBody": {
+ "id": 6090,
+ "nodeType": "Block",
+ "src": "9873:43:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6086,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6057,
+ "src": "9891:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 6087,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6072,
+ "src": "9898:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9891:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6089,
+ "nodeType": "ExpressionStatement",
+ "src": "9891:10:18"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6068,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "9543:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6069,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6057,
+ "src": "9549:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9543:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6100,
+ "nodeType": "WhileStatement",
+ "src": "9536:442:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 6113,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6101,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "10095:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6102,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10101:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "10095:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 6105,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6045,
+ "src": "10119:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6106,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "10126:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10132:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "10126:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6104,
+ "name": "unsafeAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6404,
+ 6430,
+ 6456
+ ],
+ "referencedDeclaration": 6456,
+ "src": "10106:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$",
+ "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"
+ }
+ },
+ "id": 6109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10106:28:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot storage pointer"
+ }
+ },
+ "id": 6110,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10135:5:18",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6757,
+ "src": "10106:34:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 6111,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6047,
+ "src": "10144:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10106:45:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "10095:56:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6121,
+ "nodeType": "Block",
+ "src": "10198:35:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6119,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "10219:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6051,
+ "id": 6120,
+ "nodeType": "Return",
+ "src": "10212:10:18"
+ }
+ ]
+ },
+ "id": 6122,
+ "nodeType": "IfStatement",
+ "src": "10091:142:18",
+ "trueBody": {
+ "id": 6118,
+ "nodeType": "Block",
+ "src": "10153:39:18",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6114,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6053,
+ "src": "10174:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10180:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "10174:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6051,
+ "id": 6117,
+ "nodeType": "Return",
+ "src": "10167:14:18"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6042,
+ "nodeType": "StructuredDocumentation",
+ "src": "8686:616:18",
+ "text": " @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead."
+ },
+ "id": 6124,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "findUpperBound",
+ "nameLocation": "9316:14:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6048,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6045,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "9349:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6124,
+ "src": "9331:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6043,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9331:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6044,
+ "nodeType": "ArrayTypeName",
+ "src": "9331:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6047,
+ "mutability": "mutable",
+ "name": "element",
+ "nameLocation": "9364:7:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6124,
+ "src": "9356:15:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6046,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9356:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9330:42:18"
+ },
+ "returnParameters": {
+ "id": 6051,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6050,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6124,
+ "src": "9396:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6049,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9396:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9395:9:18"
+ },
+ "scope": 6529,
+ "src": "9307:932:18",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6187,
+ "nodeType": "Block",
+ "src": "10756:709:18",
+ "statements": [
+ {
+ "assignments": [
+ 6136
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6136,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "10774:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6187,
+ "src": "10766:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6135,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10766:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6138,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 6137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10780:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10766:15:18"
+ },
+ {
+ "assignments": [
+ 6140
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6140,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "10799:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6187,
+ "src": "10791:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6139,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10791:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6143,
+ "initialValue": {
+ "expression": {
+ "id": 6141,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6128,
+ "src": "10806:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 6142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10812:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "10806:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10791:27:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6146,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6144,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6140,
+ "src": "10833:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10841:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "10833:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6150,
+ "nodeType": "IfStatement",
+ "src": "10829:48:18",
+ "trueBody": {
+ "id": 6149,
+ "nodeType": "Block",
+ "src": "10844:33:18",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 6147,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10865:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 6134,
+ "id": 6148,
+ "nodeType": "Return",
+ "src": "10858:8:18"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 6183,
+ "nodeType": "Block",
+ "src": "10906:532:18",
+ "statements": [
+ {
+ "assignments": [
+ 6155
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6155,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "10928:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6183,
+ "src": "10920:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6154,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10920:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6161,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6158,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6136,
+ "src": "10947:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 6159,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6140,
+ "src": "10952:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6156,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "10934:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10939:7:18",
+ "memberName": "average",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9089,
+ "src": "10934:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10934:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10920:37:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 6163,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6128,
+ "src": "11195:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ {
+ "id": 6164,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6155,
+ "src": "11202:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6162,
+ "name": "unsafeAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6404,
+ 6430,
+ 6456
+ ],
+ "referencedDeclaration": 6456,
+ "src": "11182:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$",
+ "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"
+ }
+ },
+ "id": 6165,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11182:24:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot storage pointer"
+ }
+ },
+ "id": 6166,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11207:5:18",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6757,
+ "src": "11182:30:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6167,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6130,
+ "src": "11215:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11182:40:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6181,
+ "nodeType": "Block",
+ "src": "11385:43:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6179,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6177,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6140,
+ "src": "11403:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 6178,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6155,
+ "src": "11410:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11403:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6180,
+ "nodeType": "ExpressionStatement",
+ "src": "11403:10:18"
+ }
+ ]
+ },
+ "id": 6182,
+ "nodeType": "IfStatement",
+ "src": "11178:250:18",
+ "trueBody": {
+ "id": 6176,
+ "nodeType": "Block",
+ "src": "11224:155:18",
+ "statements": [
+ {
+ "id": 6175,
+ "nodeType": "UncheckedBlock",
+ "src": "11301:64:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6169,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6136,
+ "src": "11333:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6170,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6155,
+ "src": "11339:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11345:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "11339:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11333:13:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6174,
+ "nodeType": "ExpressionStatement",
+ "src": "11333:13:18"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6153,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6151,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6136,
+ "src": "10894:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6152,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6140,
+ "src": "10900:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10894:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6184,
+ "nodeType": "WhileStatement",
+ "src": "10887:551:18"
+ },
+ {
+ "expression": {
+ "id": 6185,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6136,
+ "src": "11455:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6134,
+ "id": 6186,
+ "nodeType": "Return",
+ "src": "11448:10:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6125,
+ "nodeType": "StructuredDocumentation",
+ "src": "10245:412:18",
+ "text": " @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]."
+ },
+ "id": 6188,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "lowerBound",
+ "nameLocation": "10671:10:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6131,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6128,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "10700:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6188,
+ "src": "10682:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6126,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10682:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6127,
+ "nodeType": "ArrayTypeName",
+ "src": "10682:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6130,
+ "mutability": "mutable",
+ "name": "element",
+ "nameLocation": "10715:7:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6188,
+ "src": "10707:15:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6129,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10707:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10681:42:18"
+ },
+ "returnParameters": {
+ "id": 6134,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6133,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6188,
+ "src": "10747:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10747:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10746:9:18"
+ },
+ "scope": 6529,
+ "src": "10662:803:18",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6251,
+ "nodeType": "Block",
+ "src": "11982:709:18",
+ "statements": [
+ {
+ "assignments": [
+ 6200
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6200,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "12000:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6251,
+ "src": "11992:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6199,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11992:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6202,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 6201,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12006:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11992:15:18"
+ },
+ {
+ "assignments": [
+ 6204
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6204,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "12025:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6251,
+ "src": "12017:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6203,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12017:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6207,
+ "initialValue": {
+ "expression": {
+ "id": 6205,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6192,
+ "src": "12032:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ "id": 6206,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12038:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12032:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12017:27:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6208,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6204,
+ "src": "12059:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12067:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12059:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6214,
+ "nodeType": "IfStatement",
+ "src": "12055:48:18",
+ "trueBody": {
+ "id": 6213,
+ "nodeType": "Block",
+ "src": "12070:33:18",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 6211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12091:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 6198,
+ "id": 6212,
+ "nodeType": "Return",
+ "src": "12084:8:18"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 6247,
+ "nodeType": "Block",
+ "src": "12132:532:18",
+ "statements": [
+ {
+ "assignments": [
+ 6219
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6219,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "12154:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6247,
+ "src": "12146:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12146:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6225,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6222,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6200,
+ "src": "12173:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 6223,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6204,
+ "src": "12178:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6220,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "12160:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12165:7:18",
+ "memberName": "average",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9089,
+ "src": "12160:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12160:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12146:37:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 6227,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6192,
+ "src": "12421:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ }
+ },
+ {
+ "id": 6228,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6219,
+ "src": "12428:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[] storage pointer"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6226,
+ "name": "unsafeAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6404,
+ 6430,
+ 6456
+ ],
+ "referencedDeclaration": 6456,
+ "src": "12408:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$",
+ "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"
+ }
+ },
+ "id": 6229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12408:24:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot storage pointer"
+ }
+ },
+ "id": 6230,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12433:5:18",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6757,
+ "src": "12408:30:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 6231,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6194,
+ "src": "12441:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12408:40:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6245,
+ "nodeType": "Block",
+ "src": "12499:155:18",
+ "statements": [
+ {
+ "id": 6244,
+ "nodeType": "UncheckedBlock",
+ "src": "12576:64:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6238,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6200,
+ "src": "12608:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6239,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6219,
+ "src": "12614:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12620:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "12614:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12608:13:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6243,
+ "nodeType": "ExpressionStatement",
+ "src": "12608:13:18"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 6246,
+ "nodeType": "IfStatement",
+ "src": "12404:250:18",
+ "trueBody": {
+ "id": 6237,
+ "nodeType": "Block",
+ "src": "12450:43:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6235,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6233,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6204,
+ "src": "12468:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 6234,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6219,
+ "src": "12475:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12468:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6236,
+ "nodeType": "ExpressionStatement",
+ "src": "12468:10:18"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6215,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6200,
+ "src": "12120:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6216,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6204,
+ "src": "12126:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12120:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6248,
+ "nodeType": "WhileStatement",
+ "src": "12113:551:18"
+ },
+ {
+ "expression": {
+ "id": 6249,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6200,
+ "src": "12681:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6198,
+ "id": 6250,
+ "nodeType": "Return",
+ "src": "12674:10:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6189,
+ "nodeType": "StructuredDocumentation",
+ "src": "11471:412:18",
+ "text": " @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]."
+ },
+ "id": 6252,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "upperBound",
+ "nameLocation": "11897:10:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6195,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6192,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "11926:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6252,
+ "src": "11908:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6190,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11908:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6191,
+ "nodeType": "ArrayTypeName",
+ "src": "11908:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6194,
+ "mutability": "mutable",
+ "name": "element",
+ "nameLocation": "11941:7:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6252,
+ "src": "11933:15:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6193,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11933:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11907:42:18"
+ },
+ "returnParameters": {
+ "id": 6198,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6197,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6252,
+ "src": "11973:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6196,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11973:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11972:9:18"
+ },
+ "scope": 6529,
+ "src": "11888:803:18",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6314,
+ "nodeType": "Block",
+ "src": "12875:709:18",
+ "statements": [
+ {
+ "assignments": [
+ 6264
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6264,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "12893:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6314,
+ "src": "12885:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6263,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12885:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6266,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 6265,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12899:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12885:15:18"
+ },
+ {
+ "assignments": [
+ 6268
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6268,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "12918:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6314,
+ "src": "12910:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6267,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12910:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6271,
+ "initialValue": {
+ "expression": {
+ "id": 6269,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6256,
+ "src": "12925:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 6270,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12931:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12925:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12910:27:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6272,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6268,
+ "src": "12952:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12960:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12952:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6278,
+ "nodeType": "IfStatement",
+ "src": "12948:48:18",
+ "trueBody": {
+ "id": 6277,
+ "nodeType": "Block",
+ "src": "12963:33:18",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 6275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12984:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 6262,
+ "id": 6276,
+ "nodeType": "Return",
+ "src": "12977:8:18"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 6310,
+ "nodeType": "Block",
+ "src": "13025:532:18",
+ "statements": [
+ {
+ "assignments": [
+ 6283
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6283,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "13047:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6310,
+ "src": "13039:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13039:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6289,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6286,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6264,
+ "src": "13066:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 6287,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6268,
+ "src": "13071:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6284,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "13053:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13058:7:18",
+ "memberName": "average",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9089,
+ "src": "13053:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6288,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13053:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13039:37:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 6291,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6256,
+ "src": "13320:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "id": 6292,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6283,
+ "src": "13327:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6290,
+ "name": "unsafeMemoryAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6469,
+ 6482,
+ 6495
+ ],
+ "referencedDeclaration": 6495,
+ "src": "13301:18:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6293,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13301:30:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6294,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6258,
+ "src": "13334:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13301:40:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6308,
+ "nodeType": "Block",
+ "src": "13504:43:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6306,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6304,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6268,
+ "src": "13522:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 6305,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6283,
+ "src": "13529:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13522:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6307,
+ "nodeType": "ExpressionStatement",
+ "src": "13522:10:18"
+ }
+ ]
+ },
+ "id": 6309,
+ "nodeType": "IfStatement",
+ "src": "13297:250:18",
+ "trueBody": {
+ "id": 6303,
+ "nodeType": "Block",
+ "src": "13343:155:18",
+ "statements": [
+ {
+ "id": 6302,
+ "nodeType": "UncheckedBlock",
+ "src": "13420:64:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6296,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6264,
+ "src": "13452:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6297,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6283,
+ "src": "13458:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13464:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "13458:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13452:13:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6301,
+ "nodeType": "ExpressionStatement",
+ "src": "13452:13:18"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6279,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6264,
+ "src": "13013:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6280,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6268,
+ "src": "13019:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13013:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6311,
+ "nodeType": "WhileStatement",
+ "src": "13006:551:18"
+ },
+ {
+ "expression": {
+ "id": 6312,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6264,
+ "src": "13574:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6262,
+ "id": 6313,
+ "nodeType": "Return",
+ "src": "13567:10:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6253,
+ "nodeType": "StructuredDocumentation",
+ "src": "12697:74:18",
+ "text": " @dev Same as {lowerBound}, but with an array in memory."
+ },
+ "id": 6315,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "lowerBoundMemory",
+ "nameLocation": "12785:16:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6259,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6256,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "12819:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6315,
+ "src": "12802:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6254,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12802:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6255,
+ "nodeType": "ArrayTypeName",
+ "src": "12802:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6258,
+ "mutability": "mutable",
+ "name": "element",
+ "nameLocation": "12834:7:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6315,
+ "src": "12826:15:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6257,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12826:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12801:41:18"
+ },
+ "returnParameters": {
+ "id": 6262,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6261,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6315,
+ "src": "12866:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6260,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12866:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12865:9:18"
+ },
+ "scope": 6529,
+ "src": "12776:808:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6377,
+ "nodeType": "Block",
+ "src": "13768:709:18",
+ "statements": [
+ {
+ "assignments": [
+ 6327
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6327,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "13786:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6377,
+ "src": "13778:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6326,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13778:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6329,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 6328,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13792:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13778:15:18"
+ },
+ {
+ "assignments": [
+ 6331
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6331,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "13811:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6377,
+ "src": "13803:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6330,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13803:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6334,
+ "initialValue": {
+ "expression": {
+ "id": 6332,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6319,
+ "src": "13818:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 6333,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13824:6:18",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13818:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13803:27:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6335,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6331,
+ "src": "13845:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6336,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13853:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "13845:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6341,
+ "nodeType": "IfStatement",
+ "src": "13841:48:18",
+ "trueBody": {
+ "id": 6340,
+ "nodeType": "Block",
+ "src": "13856:33:18",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 6338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13877:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 6325,
+ "id": 6339,
+ "nodeType": "Return",
+ "src": "13870:8:18"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 6373,
+ "nodeType": "Block",
+ "src": "13918:532:18",
+ "statements": [
+ {
+ "assignments": [
+ 6346
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6346,
+ "mutability": "mutable",
+ "name": "mid",
+ "nameLocation": "13940:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6373,
+ "src": "13932:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6345,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13932:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6352,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6349,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6327,
+ "src": "13959:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 6350,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6331,
+ "src": "13964:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6347,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "13946:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13951:7:18",
+ "memberName": "average",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9089,
+ "src": "13946:12:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6351,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13946:23:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13932:37:18"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 6354,
+ "name": "array",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6319,
+ "src": "14213:5:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "id": 6355,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6346,
+ "src": "14220:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6353,
+ "name": "unsafeMemoryAccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 6469,
+ 6482,
+ 6495
+ ],
+ "referencedDeclaration": 6495,
+ "src": "14194:18:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256[] memory,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6356,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14194:30:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 6357,
+ "name": "element",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6321,
+ "src": "14227:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14194:40:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 6371,
+ "nodeType": "Block",
+ "src": "14285:155:18",
+ "statements": [
+ {
+ "id": 6370,
+ "nodeType": "UncheckedBlock",
+ "src": "14362:64:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6364,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6327,
+ "src": "14394:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6365,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6346,
+ "src": "14400:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6366,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14406:1:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "14400:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14394:13:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6369,
+ "nodeType": "ExpressionStatement",
+ "src": "14394:13:18"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 6372,
+ "nodeType": "IfStatement",
+ "src": "14190:250:18",
+ "trueBody": {
+ "id": 6363,
+ "nodeType": "Block",
+ "src": "14236:43:18",
+ "statements": [
+ {
+ "expression": {
+ "id": 6361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6359,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6331,
+ "src": "14254:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 6360,
+ "name": "mid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6346,
+ "src": "14261:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14254:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6362,
+ "nodeType": "ExpressionStatement",
+ "src": "14254:10:18"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6344,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6342,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6327,
+ "src": "13906:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6343,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6331,
+ "src": "13912:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13906:10:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6374,
+ "nodeType": "WhileStatement",
+ "src": "13899:551:18"
+ },
+ {
+ "expression": {
+ "id": 6375,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6327,
+ "src": "14467:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 6325,
+ "id": 6376,
+ "nodeType": "Return",
+ "src": "14460:10:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6316,
+ "nodeType": "StructuredDocumentation",
+ "src": "13590:74:18",
+ "text": " @dev Same as {upperBound}, but with an array in memory."
+ },
+ "id": 6378,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "upperBoundMemory",
+ "nameLocation": "13678:16:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6322,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6319,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "13712:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6378,
+ "src": "13695:22:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6317,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13695:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6318,
+ "nodeType": "ArrayTypeName",
+ "src": "13695:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6321,
+ "mutability": "mutable",
+ "name": "element",
+ "nameLocation": "13727:7:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6378,
+ "src": "13719:15:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6320,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13719:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13694:41:18"
+ },
+ "returnParameters": {
+ "id": 6325,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6324,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6378,
+ "src": "13759:7:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6323,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13759:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13758:9:18"
+ },
+ "scope": 6529,
+ "src": "13669:808:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6403,
+ "nodeType": "Block",
+ "src": "14793:167:18",
+ "statements": [
+ {
+ "assignments": [
+ 6391
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6391,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "14811:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6403,
+ "src": "14803:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6390,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "14803:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6392,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14803:12:18"
+ },
+ {
+ "AST": {
+ "nativeSrc": "14850:40:18",
+ "nodeType": "YulBlock",
+ "src": "14850:40:18",
+ "statements": [
+ {
+ "nativeSrc": "14864:16:18",
+ "nodeType": "YulAssignment",
+ "src": "14864:16:18",
+ "value": {
+ "name": "arr.slot",
+ "nativeSrc": "14872:8:18",
+ "nodeType": "YulIdentifier",
+ "src": "14872:8:18"
+ },
+ "variableNames": [
+ {
+ "name": "slot",
+ "nativeSrc": "14864:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "14864:4:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6382,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "14872:8:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6391,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14864:4:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6393,
+ "nodeType": "InlineAssembly",
+ "src": "14825:65:18"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 6398,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6384,
+ "src": "14932:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 6394,
+ "name": "slot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6391,
+ "src": "14906:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14911:11:18",
+ "memberName": "deriveArray",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6658,
+ "src": "14906:16:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (bytes32)"
+ }
+ },
+ "id": 6396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14906:18:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6397,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14925:6:18",
+ "memberName": "offset",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6648,
+ "src": "14906:25:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 6399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14906:30:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14937:14:18",
+ "memberName": "getAddressSlot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6778,
+ "src": "14906:45:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6749_storage_ptr_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"
+ }
+ },
+ "id": 6401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14906:47:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr",
+ "typeString": "struct StorageSlot.AddressSlot storage pointer"
+ }
+ },
+ "functionReturnParameters": 6389,
+ "id": 6402,
+ "nodeType": "Return",
+ "src": "14899:54:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6379,
+ "nodeType": "StructuredDocumentation",
+ "src": "14483:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6404,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeAccess",
+ "nameLocation": "14688:12:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6385,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6382,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "14719:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6404,
+ "src": "14701:21:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6380,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14701:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 6381,
+ "nodeType": "ArrayTypeName",
+ "src": "14701:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6384,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "14732:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6404,
+ "src": "14724:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6383,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14724:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14700:36:18"
+ },
+ "returnParameters": {
+ "id": 6389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6388,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6404,
+ "src": "14760:31:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr",
+ "typeString": "struct StorageSlot.AddressSlot"
+ },
+ "typeName": {
+ "id": 6387,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6386,
+ "name": "StorageSlot.AddressSlot",
+ "nameLocations": [
+ "14760:11:18",
+ "14772:11:18"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6749,
+ "src": "14760:23:18"
+ },
+ "referencedDeclaration": 6749,
+ "src": "14760:23:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr",
+ "typeString": "struct StorageSlot.AddressSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14759:33:18"
+ },
+ "scope": 6529,
+ "src": "14679:281:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6429,
+ "nodeType": "Block",
+ "src": "15276:167:18",
+ "statements": [
+ {
+ "assignments": [
+ 6417
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6417,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "15294:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6429,
+ "src": "15286:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6416,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15286:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6418,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15286:12:18"
+ },
+ {
+ "AST": {
+ "nativeSrc": "15333:40:18",
+ "nodeType": "YulBlock",
+ "src": "15333:40:18",
+ "statements": [
+ {
+ "nativeSrc": "15347:16:18",
+ "nodeType": "YulAssignment",
+ "src": "15347:16:18",
+ "value": {
+ "name": "arr.slot",
+ "nativeSrc": "15355:8:18",
+ "nodeType": "YulIdentifier",
+ "src": "15355:8:18"
+ },
+ "variableNames": [
+ {
+ "name": "slot",
+ "nativeSrc": "15347:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "15347:4:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6408,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "15355:8:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6417,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15347:4:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6419,
+ "nodeType": "InlineAssembly",
+ "src": "15308:65:18"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 6424,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6410,
+ "src": "15415:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 6420,
+ "name": "slot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6417,
+ "src": "15389:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6421,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15394:11:18",
+ "memberName": "deriveArray",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6658,
+ "src": "15389:16:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (bytes32)"
+ }
+ },
+ "id": 6422,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15389:18:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6423,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15408:6:18",
+ "memberName": "offset",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6648,
+ "src": "15389:25:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 6425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15389:30:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15420:14:18",
+ "memberName": "getBytes32Slot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6800,
+ "src": "15389:45:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6755_storage_ptr_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"
+ }
+ },
+ "id": 6427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15389:47:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr",
+ "typeString": "struct StorageSlot.Bytes32Slot storage pointer"
+ }
+ },
+ "functionReturnParameters": 6415,
+ "id": 6428,
+ "nodeType": "Return",
+ "src": "15382:54:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6405,
+ "nodeType": "StructuredDocumentation",
+ "src": "14966:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6430,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeAccess",
+ "nameLocation": "15171:12:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6411,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6408,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "15202:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6430,
+ "src": "15184:21:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6406,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15184:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6407,
+ "nodeType": "ArrayTypeName",
+ "src": "15184:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6410,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "15215:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6430,
+ "src": "15207:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6409,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15207:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15183:36:18"
+ },
+ "returnParameters": {
+ "id": 6415,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6414,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6430,
+ "src": "15243:31:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr",
+ "typeString": "struct StorageSlot.Bytes32Slot"
+ },
+ "typeName": {
+ "id": 6413,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6412,
+ "name": "StorageSlot.Bytes32Slot",
+ "nameLocations": [
+ "15243:11:18",
+ "15255:11:18"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6755,
+ "src": "15243:23:18"
+ },
+ "referencedDeclaration": 6755,
+ "src": "15243:23:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr",
+ "typeString": "struct StorageSlot.Bytes32Slot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15242:33:18"
+ },
+ "scope": 6529,
+ "src": "15162:281:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6455,
+ "nodeType": "Block",
+ "src": "15759:167:18",
+ "statements": [
+ {
+ "assignments": [
+ 6443
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6443,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "15777:4:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6455,
+ "src": "15769:12:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6442,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15769:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6444,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15769:12:18"
+ },
+ {
+ "AST": {
+ "nativeSrc": "15816:40:18",
+ "nodeType": "YulBlock",
+ "src": "15816:40:18",
+ "statements": [
+ {
+ "nativeSrc": "15830:16:18",
+ "nodeType": "YulAssignment",
+ "src": "15830:16:18",
+ "value": {
+ "name": "arr.slot",
+ "nativeSrc": "15838:8:18",
+ "nodeType": "YulIdentifier",
+ "src": "15838:8:18"
+ },
+ "variableNames": [
+ {
+ "name": "slot",
+ "nativeSrc": "15830:4:18",
+ "nodeType": "YulIdentifier",
+ "src": "15830:4:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6434,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "15838:8:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6443,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15830:4:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6445,
+ "nodeType": "InlineAssembly",
+ "src": "15791:65:18"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 6450,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6436,
+ "src": "15898:3:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 6446,
+ "name": "slot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6443,
+ "src": "15872:4:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15877:11:18",
+ "memberName": "deriveArray",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6658,
+ "src": "15872:16:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (bytes32)"
+ }
+ },
+ "id": 6448,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15872:18:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6449,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15891:6:18",
+ "memberName": "offset",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6648,
+ "src": "15872:25:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 6451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15872:30:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6452,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15903:14:18",
+ "memberName": "getUint256Slot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6811,
+ "src": "15872:45:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"
+ }
+ },
+ "id": 6453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15872:47:18",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot storage pointer"
+ }
+ },
+ "functionReturnParameters": 6441,
+ "id": 6454,
+ "nodeType": "Return",
+ "src": "15865:54:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6431,
+ "nodeType": "StructuredDocumentation",
+ "src": "15449:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6456,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeAccess",
+ "nameLocation": "15654:12:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6437,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6434,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "15685:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6456,
+ "src": "15667:21:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6432,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15667:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6433,
+ "nodeType": "ArrayTypeName",
+ "src": "15667:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6436,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "15698:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6456,
+ "src": "15690:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6435,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15690:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15666:36:18"
+ },
+ "returnParameters": {
+ "id": 6441,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6440,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6456,
+ "src": "15726:31:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot"
+ },
+ "typeName": {
+ "id": 6439,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6438,
+ "name": "StorageSlot.Uint256Slot",
+ "nameLocations": [
+ "15726:11:18",
+ "15738:11:18"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6758,
+ "src": "15726:23:18"
+ },
+ "referencedDeclaration": 6758,
+ "src": "15726:23:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15725:33:18"
+ },
+ "scope": 6529,
+ "src": "15645:281:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6468,
+ "nodeType": "Block",
+ "src": "16227:98:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "16246:73:18",
+ "nodeType": "YulBlock",
+ "src": "16246:73:18",
+ "statements": [
+ {
+ "nativeSrc": "16260:49:18",
+ "nodeType": "YulAssignment",
+ "src": "16260:49:18",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "arr",
+ "nativeSrc": "16281:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16281:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16286:4:18",
+ "nodeType": "YulLiteral",
+ "src": "16286:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16277:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16277:3:18"
+ },
+ "nativeSrc": "16277:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16277:14:18"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "16297:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16297:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16302:4:18",
+ "nodeType": "YulLiteral",
+ "src": "16302:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "16293:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16293:3:18"
+ },
+ "nativeSrc": "16293:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16293:14:18"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16273:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16273:3:18"
+ },
+ "nativeSrc": "16273:35:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16273:35:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "16267:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "16267:5:18"
+ },
+ "nativeSrc": "16267:42:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16267:42:18"
+ },
+ "variableNames": [
+ {
+ "name": "res",
+ "nativeSrc": "16260:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16260:3:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6460,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16281:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6462,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16297:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6465,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16260:3:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 6467,
+ "nodeType": "InlineAssembly",
+ "src": "16237:82:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6457,
+ "nodeType": "StructuredDocumentation",
+ "src": "15932:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6469,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeMemoryAccess",
+ "nameLocation": "16137:18:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6463,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6460,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "16173:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6469,
+ "src": "16156:20:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6458,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "16156:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 6459,
+ "nodeType": "ArrayTypeName",
+ "src": "16156:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6462,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "16186:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6469,
+ "src": "16178:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6461,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16178:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16155:35:18"
+ },
+ "returnParameters": {
+ "id": 6466,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6465,
+ "mutability": "mutable",
+ "name": "res",
+ "nameLocation": "16222:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6469,
+ "src": "16214:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 6464,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "16214:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16213:13:18"
+ },
+ "scope": 6529,
+ "src": "16128:197:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6481,
+ "nodeType": "Block",
+ "src": "16626:98:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "16645:73:18",
+ "nodeType": "YulBlock",
+ "src": "16645:73:18",
+ "statements": [
+ {
+ "nativeSrc": "16659:49:18",
+ "nodeType": "YulAssignment",
+ "src": "16659:49:18",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "arr",
+ "nativeSrc": "16680:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16680:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16685:4:18",
+ "nodeType": "YulLiteral",
+ "src": "16685:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16676:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16676:3:18"
+ },
+ "nativeSrc": "16676:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16676:14:18"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "16696:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16696:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16701:4:18",
+ "nodeType": "YulLiteral",
+ "src": "16701:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "16692:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16692:3:18"
+ },
+ "nativeSrc": "16692:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16692:14:18"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16672:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16672:3:18"
+ },
+ "nativeSrc": "16672:35:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16672:35:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "16666:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "16666:5:18"
+ },
+ "nativeSrc": "16666:42:18",
+ "nodeType": "YulFunctionCall",
+ "src": "16666:42:18"
+ },
+ "variableNames": [
+ {
+ "name": "res",
+ "nativeSrc": "16659:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "16659:3:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6473,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16680:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6475,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16696:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6478,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16659:3:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 6480,
+ "nodeType": "InlineAssembly",
+ "src": "16636:82:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6470,
+ "nodeType": "StructuredDocumentation",
+ "src": "16331:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6482,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeMemoryAccess",
+ "nameLocation": "16536:18:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6476,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6473,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "16572:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6482,
+ "src": "16555:20:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6471,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "16555:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6472,
+ "nodeType": "ArrayTypeName",
+ "src": "16555:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6475,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "16585:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6482,
+ "src": "16577:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6474,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16577:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16554:35:18"
+ },
+ "returnParameters": {
+ "id": 6479,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6478,
+ "mutability": "mutable",
+ "name": "res",
+ "nameLocation": "16621:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6482,
+ "src": "16613:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6477,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "16613:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16612:13:18"
+ },
+ "scope": 6529,
+ "src": "16527:197:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6494,
+ "nodeType": "Block",
+ "src": "17025:98:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "17044:73:18",
+ "nodeType": "YulBlock",
+ "src": "17044:73:18",
+ "statements": [
+ {
+ "nativeSrc": "17058:49:18",
+ "nodeType": "YulAssignment",
+ "src": "17058:49:18",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "arr",
+ "nativeSrc": "17079:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17079:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17084:4:18",
+ "nodeType": "YulLiteral",
+ "src": "17084:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "17075:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17075:3:18"
+ },
+ "nativeSrc": "17075:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17075:14:18"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "17095:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17095:3:18"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17100:4:18",
+ "nodeType": "YulLiteral",
+ "src": "17100:4:18",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "17091:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17091:3:18"
+ },
+ "nativeSrc": "17091:14:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17091:14:18"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "17071:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17071:3:18"
+ },
+ "nativeSrc": "17071:35:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17071:35:18"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "17065:5:18",
+ "nodeType": "YulIdentifier",
+ "src": "17065:5:18"
+ },
+ "nativeSrc": "17065:42:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17065:42:18"
+ },
+ "variableNames": [
+ {
+ "name": "res",
+ "nativeSrc": "17058:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17058:3:18"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6486,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17079:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6488,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17095:3:18",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6491,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17058:3:18",
+ "valueSize": 1
+ }
+ ],
+ "id": 6493,
+ "nodeType": "InlineAssembly",
+ "src": "17035:82:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6483,
+ "nodeType": "StructuredDocumentation",
+ "src": "16730:191:18",
+ "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."
+ },
+ "id": 6495,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeMemoryAccess",
+ "nameLocation": "16935:18:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6489,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6486,
+ "mutability": "mutable",
+ "name": "arr",
+ "nameLocation": "16971:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6495,
+ "src": "16954:20:18",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6484,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16954:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6485,
+ "nodeType": "ArrayTypeName",
+ "src": "16954:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6488,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "16984:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6495,
+ "src": "16976:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6487,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16976:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16953:35:18"
+ },
+ "returnParameters": {
+ "id": 6492,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6491,
+ "mutability": "mutable",
+ "name": "res",
+ "nameLocation": "17020:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6495,
+ "src": "17012:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6490,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17012:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17011:13:18"
+ },
+ "scope": 6529,
+ "src": "16926:197:18",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6505,
+ "nodeType": "Block",
+ "src": "17439:88:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "17474:47:18",
+ "nodeType": "YulBlock",
+ "src": "17474:47:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "array.slot",
+ "nativeSrc": "17495:10:18",
+ "nodeType": "YulIdentifier",
+ "src": "17495:10:18"
+ },
+ {
+ "name": "len",
+ "nativeSrc": "17507:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17507:3:18"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "17488:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "17488:6:18"
+ },
+ "nativeSrc": "17488:23:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17488:23:18"
+ },
+ "nativeSrc": "17488:23:18",
+ "nodeType": "YulExpressionStatement",
+ "src": "17488:23:18"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6499,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "17495:10:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6501,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17507:3:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6504,
+ "nodeType": "InlineAssembly",
+ "src": "17449:72:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6496,
+ "nodeType": "StructuredDocumentation",
+ "src": "17129:233:18",
+ "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."
+ },
+ "id": 6506,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeSetLength",
+ "nameLocation": "17376:15:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6502,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6499,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "17410:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6506,
+ "src": "17392:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6497,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "17392:7:18",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 6498,
+ "nodeType": "ArrayTypeName",
+ "src": "17392:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6501,
+ "mutability": "mutable",
+ "name": "len",
+ "nameLocation": "17425:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6506,
+ "src": "17417:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6500,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17417:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17391:38:18"
+ },
+ "returnParameters": {
+ "id": 6503,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "17439:0:18"
+ },
+ "scope": 6529,
+ "src": "17367:160:18",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6516,
+ "nodeType": "Block",
+ "src": "17843:88:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "17878:47:18",
+ "nodeType": "YulBlock",
+ "src": "17878:47:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "array.slot",
+ "nativeSrc": "17899:10:18",
+ "nodeType": "YulIdentifier",
+ "src": "17899:10:18"
+ },
+ {
+ "name": "len",
+ "nativeSrc": "17911:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "17911:3:18"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "17892:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "17892:6:18"
+ },
+ "nativeSrc": "17892:23:18",
+ "nodeType": "YulFunctionCall",
+ "src": "17892:23:18"
+ },
+ "nativeSrc": "17892:23:18",
+ "nodeType": "YulExpressionStatement",
+ "src": "17892:23:18"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6510,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "17899:10:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6512,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17911:3:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6515,
+ "nodeType": "InlineAssembly",
+ "src": "17853:72:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6507,
+ "nodeType": "StructuredDocumentation",
+ "src": "17533:233:18",
+ "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."
+ },
+ "id": 6517,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeSetLength",
+ "nameLocation": "17780:15:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6513,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6510,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "17814:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6517,
+ "src": "17796:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6508,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "17796:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 6509,
+ "nodeType": "ArrayTypeName",
+ "src": "17796:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6512,
+ "mutability": "mutable",
+ "name": "len",
+ "nameLocation": "17829:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6517,
+ "src": "17821:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6511,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17821:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17795:38:18"
+ },
+ "returnParameters": {
+ "id": 6514,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "17843:0:18"
+ },
+ "scope": 6529,
+ "src": "17771:160:18",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6527,
+ "nodeType": "Block",
+ "src": "18247:88:18",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "18282:47:18",
+ "nodeType": "YulBlock",
+ "src": "18282:47:18",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "array.slot",
+ "nativeSrc": "18303:10:18",
+ "nodeType": "YulIdentifier",
+ "src": "18303:10:18"
+ },
+ {
+ "name": "len",
+ "nativeSrc": "18315:3:18",
+ "nodeType": "YulIdentifier",
+ "src": "18315:3:18"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "18296:6:18",
+ "nodeType": "YulIdentifier",
+ "src": "18296:6:18"
+ },
+ "nativeSrc": "18296:23:18",
+ "nodeType": "YulFunctionCall",
+ "src": "18296:23:18"
+ },
+ "nativeSrc": "18296:23:18",
+ "nodeType": "YulExpressionStatement",
+ "src": "18296:23:18"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6521,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "18303:10:18",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6523,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18315:3:18",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6526,
+ "nodeType": "InlineAssembly",
+ "src": "18257:72:18"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6518,
+ "nodeType": "StructuredDocumentation",
+ "src": "17937:233:18",
+ "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."
+ },
+ "id": 6528,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsafeSetLength",
+ "nameLocation": "18184:15:18",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6524,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6521,
+ "mutability": "mutable",
+ "name": "array",
+ "nameLocation": "18218:5:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6528,
+ "src": "18200:23:18",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 6519,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18200:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6520,
+ "nodeType": "ArrayTypeName",
+ "src": "18200:9:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6523,
+ "mutability": "mutable",
+ "name": "len",
+ "nameLocation": "18233:3:18",
+ "nodeType": "VariableDeclaration",
+ "scope": 6528,
+ "src": "18225:11:18",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6522,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18225:7:18",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18199:38:18"
+ },
+ "returnParameters": {
+ "id": 6525,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "18247:0:18"
+ },
+ "scope": 6529,
+ "src": "18175:160:18",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 6530,
+ "src": "459:17878:18",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "183:18155:18"
+ },
+ "id": 18
+ },
+ "@openzeppelin/contracts/utils/Comparators.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Comparators.sol",
+ "exportedSymbols": {
+ "Comparators": [
+ 6561
+ ]
+ },
+ "id": 6562,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 6531,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "105:24:19"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Comparators",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 6532,
+ "nodeType": "StructuredDocumentation",
+ "src": "131:92:19",
+ "text": " @dev Provides a set of functions to compare values.\n _Available since v5.1._"
+ },
+ "fullyImplemented": true,
+ "id": 6561,
+ "linearizedBaseContracts": [
+ 6561
+ ],
+ "name": "Comparators",
+ "nameLocation": "232:11:19",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 6545,
+ "nodeType": "Block",
+ "src": "313:29:19",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6543,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6541,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6534,
+ "src": "330:1:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 6542,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6536,
+ "src": "334:1:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "330:5:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 6540,
+ "id": 6544,
+ "nodeType": "Return",
+ "src": "323:12:19"
+ }
+ ]
+ },
+ "id": 6546,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "lt",
+ "nameLocation": "259:2:19",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6537,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6534,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "270:1:19",
+ "nodeType": "VariableDeclaration",
+ "scope": 6546,
+ "src": "262:9:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6533,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "262:7:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6536,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "281:1:19",
+ "nodeType": "VariableDeclaration",
+ "scope": 6546,
+ "src": "273:9:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6535,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "273:7:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "261:22:19"
+ },
+ "returnParameters": {
+ "id": 6540,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6539,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6546,
+ "src": "307:4:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6538,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "307:4:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "306:6:19"
+ },
+ "scope": 6561,
+ "src": "250:92:19",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6559,
+ "nodeType": "Block",
+ "src": "411:29:19",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6555,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6548,
+ "src": "428:1:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 6556,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6550,
+ "src": "432:1:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "428:5:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 6554,
+ "id": 6558,
+ "nodeType": "Return",
+ "src": "421:12:19"
+ }
+ ]
+ },
+ "id": 6560,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "gt",
+ "nameLocation": "357:2:19",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6551,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6548,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "368:1:19",
+ "nodeType": "VariableDeclaration",
+ "scope": 6560,
+ "src": "360:9:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6547,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "360:7:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6550,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "379:1:19",
+ "nodeType": "VariableDeclaration",
+ "scope": 6560,
+ "src": "371:9:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6549,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "371:7:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "359:22:19"
+ },
+ "returnParameters": {
+ "id": 6554,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6553,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6560,
+ "src": "405:4:19",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6552,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "405:4:19",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "404:6:19"
+ },
+ "scope": 6561,
+ "src": "348:92:19",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 6562,
+ "src": "224:218:19",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "105:338:19"
+ },
+ "id": 19
+ },
+ "@openzeppelin/contracts/utils/Panic.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Panic.sol",
+ "exportedSymbols": {
+ "Panic": [
+ 6613
+ ]
+ },
+ "id": 6614,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 6563,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "99:24:20"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Panic",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 6564,
+ "nodeType": "StructuredDocumentation",
+ "src": "125:489:20",
+ "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._"
+ },
+ "fullyImplemented": true,
+ "id": 6613,
+ "linearizedBaseContracts": [
+ 6613
+ ],
+ "name": "Panic",
+ "nameLocation": "665:5:20",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6565,
+ "nodeType": "StructuredDocumentation",
+ "src": "677:36:20",
+ "text": "@dev generic / unspecified error"
+ },
+ "id": 6568,
+ "mutability": "constant",
+ "name": "GENERIC",
+ "nameLocation": "744:7:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "718:40:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6566,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "718:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783030",
+ "id": 6567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "754:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0x00"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6569,
+ "nodeType": "StructuredDocumentation",
+ "src": "764:37:20",
+ "text": "@dev used by the assert() builtin"
+ },
+ "id": 6572,
+ "mutability": "constant",
+ "name": "ASSERT",
+ "nameLocation": "832:6:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "806:39:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6570,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "806:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783031",
+ "id": 6571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "841:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "0x01"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6573,
+ "nodeType": "StructuredDocumentation",
+ "src": "851:41:20",
+ "text": "@dev arithmetic underflow or overflow"
+ },
+ "id": 6576,
+ "mutability": "constant",
+ "name": "UNDER_OVERFLOW",
+ "nameLocation": "923:14:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "897:47:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6574,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "897:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783131",
+ "id": 6575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "940:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17_by_1",
+ "typeString": "int_const 17"
+ },
+ "value": "0x11"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6577,
+ "nodeType": "StructuredDocumentation",
+ "src": "950:35:20",
+ "text": "@dev division or modulo by zero"
+ },
+ "id": 6580,
+ "mutability": "constant",
+ "name": "DIVISION_BY_ZERO",
+ "nameLocation": "1016:16:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "990:49:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6578,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "990:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783132",
+ "id": 6579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1035:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18_by_1",
+ "typeString": "int_const 18"
+ },
+ "value": "0x12"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6581,
+ "nodeType": "StructuredDocumentation",
+ "src": "1045:30:20",
+ "text": "@dev enum conversion error"
+ },
+ "id": 6584,
+ "mutability": "constant",
+ "name": "ENUM_CONVERSION_ERROR",
+ "nameLocation": "1106:21:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1080:54:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6582,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1080:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783231",
+ "id": 6583,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1130:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_33_by_1",
+ "typeString": "int_const 33"
+ },
+ "value": "0x21"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6585,
+ "nodeType": "StructuredDocumentation",
+ "src": "1140:36:20",
+ "text": "@dev invalid encoding in storage"
+ },
+ "id": 6588,
+ "mutability": "constant",
+ "name": "STORAGE_ENCODING_ERROR",
+ "nameLocation": "1207:22:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1181:55:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6586,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1181:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783232",
+ "id": 6587,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1232:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_34_by_1",
+ "typeString": "int_const 34"
+ },
+ "value": "0x22"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6589,
+ "nodeType": "StructuredDocumentation",
+ "src": "1242:24:20",
+ "text": "@dev empty array pop"
+ },
+ "id": 6592,
+ "mutability": "constant",
+ "name": "EMPTY_ARRAY_POP",
+ "nameLocation": "1297:15:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1271:48:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6590,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1271:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783331",
+ "id": 6591,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1315:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_49_by_1",
+ "typeString": "int_const 49"
+ },
+ "value": "0x31"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6593,
+ "nodeType": "StructuredDocumentation",
+ "src": "1325:35:20",
+ "text": "@dev array out of bounds access"
+ },
+ "id": 6596,
+ "mutability": "constant",
+ "name": "ARRAY_OUT_OF_BOUNDS",
+ "nameLocation": "1391:19:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1365:52:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6594,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1365:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783332",
+ "id": 6595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1413:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_50_by_1",
+ "typeString": "int_const 50"
+ },
+ "value": "0x32"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6597,
+ "nodeType": "StructuredDocumentation",
+ "src": "1423:65:20",
+ "text": "@dev resource error (too large allocation or too large array)"
+ },
+ "id": 6600,
+ "mutability": "constant",
+ "name": "RESOURCE_ERROR",
+ "nameLocation": "1519:14:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1493:47:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6598,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1493:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783431",
+ "id": 6599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1536:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65_by_1",
+ "typeString": "int_const 65"
+ },
+ "value": "0x41"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 6601,
+ "nodeType": "StructuredDocumentation",
+ "src": "1546:42:20",
+ "text": "@dev calling invalid internal function"
+ },
+ "id": 6604,
+ "mutability": "constant",
+ "name": "INVALID_INTERNAL_FUNCTION",
+ "nameLocation": "1619:25:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6613,
+ "src": "1593:58:20",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6602,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1593:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30783531",
+ "id": 6603,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1647:4:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_81_by_1",
+ "typeString": "int_const 81"
+ },
+ "value": "0x51"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6611,
+ "nodeType": "Block",
+ "src": "1819:151:20",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1854:110:20",
+ "nodeType": "YulBlock",
+ "src": "1854:110:20",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1875:4:20",
+ "nodeType": "YulLiteral",
+ "src": "1875:4:20",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1881:10:20",
+ "nodeType": "YulLiteral",
+ "src": "1881:10:20",
+ "type": "",
+ "value": "0x4e487b71"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1868:6:20",
+ "nodeType": "YulIdentifier",
+ "src": "1868:6:20"
+ },
+ "nativeSrc": "1868:24:20",
+ "nodeType": "YulFunctionCall",
+ "src": "1868:24:20"
+ },
+ "nativeSrc": "1868:24:20",
+ "nodeType": "YulExpressionStatement",
+ "src": "1868:24:20"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1912:4:20",
+ "nodeType": "YulLiteral",
+ "src": "1912:4:20",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "code",
+ "nativeSrc": "1918:4:20",
+ "nodeType": "YulIdentifier",
+ "src": "1918:4:20"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1905:6:20",
+ "nodeType": "YulIdentifier",
+ "src": "1905:6:20"
+ },
+ "nativeSrc": "1905:18:20",
+ "nodeType": "YulFunctionCall",
+ "src": "1905:18:20"
+ },
+ "nativeSrc": "1905:18:20",
+ "nodeType": "YulExpressionStatement",
+ "src": "1905:18:20"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1943:4:20",
+ "nodeType": "YulLiteral",
+ "src": "1943:4:20",
+ "type": "",
+ "value": "0x1c"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1949:4:20",
+ "nodeType": "YulLiteral",
+ "src": "1949:4:20",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "1936:6:20",
+ "nodeType": "YulIdentifier",
+ "src": "1936:6:20"
+ },
+ "nativeSrc": "1936:18:20",
+ "nodeType": "YulFunctionCall",
+ "src": "1936:18:20"
+ },
+ "nativeSrc": "1936:18:20",
+ "nodeType": "YulExpressionStatement",
+ "src": "1936:18:20"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6607,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1918:4:20",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6610,
+ "nodeType": "InlineAssembly",
+ "src": "1829:135:20"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6605,
+ "nodeType": "StructuredDocumentation",
+ "src": "1658:113:20",
+ "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."
+ },
+ "id": 6612,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "panic",
+ "nameLocation": "1785:5:20",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6608,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6607,
+ "mutability": "mutable",
+ "name": "code",
+ "nameLocation": "1799:4:20",
+ "nodeType": "VariableDeclaration",
+ "scope": 6612,
+ "src": "1791:12:20",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6606,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1791:7:20",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1790:14:20"
+ },
+ "returnParameters": {
+ "id": 6609,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1819:0:20"
+ },
+ "scope": 6613,
+ "src": "1776:194:20",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 6614,
+ "src": "657:1315:20",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "99:1874:20"
+ },
+ "id": 20
+ },
+ "@openzeppelin/contracts/utils/SlotDerivation.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/SlotDerivation.sol",
+ "exportedSymbols": {
+ "SlotDerivation": [
+ 6743
+ ]
+ },
+ "id": 6744,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 6615,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "199:24:21"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "SlotDerivation",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 6616,
+ "nodeType": "StructuredDocumentation",
+ "src": "225:1373:21",
+ "text": " @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n // Add the library methods\n using StorageSlot for bytes32;\n using SlotDerivation for bytes32;\n // Declare a namespace\n string private constant _NAMESPACE = \"\"; // eg. OpenZeppelin.Slot\n function setValueInNamespace(uint256 key, address newValue) internal {\n _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n }\n function getValueInNamespace(uint256 key) internal view returns (address) {\n return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library.\n _Available since v5.1._"
+ },
+ "fullyImplemented": true,
+ "id": 6743,
+ "linearizedBaseContracts": [
+ 6743
+ ],
+ "name": "SlotDerivation",
+ "nameLocation": "1607:14:21",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 6625,
+ "nodeType": "Block",
+ "src": "1790:194:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1825:153:21",
+ "nodeType": "YulBlock",
+ "src": "1825:153:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1846:4:21",
+ "nodeType": "YulLiteral",
+ "src": "1846:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "namespace",
+ "nativeSrc": "1870:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "1870:9:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1881:4:21",
+ "nodeType": "YulLiteral",
+ "src": "1881:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1866:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "1866:3:21"
+ },
+ "nativeSrc": "1866:20:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1866:20:21"
+ },
+ {
+ "arguments": [
+ {
+ "name": "namespace",
+ "nativeSrc": "1894:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "1894:9:21"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1888:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "1888:5:21"
+ },
+ "nativeSrc": "1888:16:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1888:16:21"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "1856:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "1856:9:21"
+ },
+ "nativeSrc": "1856:49:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1856:49:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1907:1:21",
+ "nodeType": "YulLiteral",
+ "src": "1907:1:21",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "1852:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "1852:3:21"
+ },
+ "nativeSrc": "1852:57:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1852:57:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1839:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "1839:6:21"
+ },
+ "nativeSrc": "1839:71:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1839:71:21"
+ },
+ "nativeSrc": "1839:71:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "1839:71:21"
+ },
+ {
+ "nativeSrc": "1923:45:21",
+ "nodeType": "YulAssignment",
+ "src": "1923:45:21",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1945:4:21",
+ "nodeType": "YulLiteral",
+ "src": "1945:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1951:4:21",
+ "nodeType": "YulLiteral",
+ "src": "1951:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "1935:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "1935:9:21"
+ },
+ "nativeSrc": "1935:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1935:21:21"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1962:4:21",
+ "nodeType": "YulLiteral",
+ "src": "1962:4:21",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "1958:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "1958:3:21"
+ },
+ "nativeSrc": "1958:9:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1958:9:21"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "1931:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "1931:3:21"
+ },
+ "nativeSrc": "1931:37:21",
+ "nodeType": "YulFunctionCall",
+ "src": "1931:37:21"
+ },
+ "variableNames": [
+ {
+ "name": "slot",
+ "nativeSrc": "1923:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "1923:4:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6619,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1870:9:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6619,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1894:9:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6622,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1923:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6624,
+ "nodeType": "InlineAssembly",
+ "src": "1800:178:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6617,
+ "nodeType": "StructuredDocumentation",
+ "src": "1628:74:21",
+ "text": " @dev Derive an ERC-7201 slot from a string (namespace)."
+ },
+ "id": 6626,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "erc7201Slot",
+ "nameLocation": "1716:11:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6620,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6619,
+ "mutability": "mutable",
+ "name": "namespace",
+ "nameLocation": "1742:9:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6626,
+ "src": "1728:23:21",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6618,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1728:6:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1727:25:21"
+ },
+ "returnParameters": {
+ "id": 6623,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6622,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "1784:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6626,
+ "src": "1776:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6621,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1776:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1775:14:21"
+ },
+ "scope": 6743,
+ "src": "1707:277:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6647,
+ "nodeType": "Block",
+ "src": "2176:86:21",
+ "statements": [
+ {
+ "id": 6646,
+ "nodeType": "UncheckedBlock",
+ "src": "2186:70:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 6640,
+ "name": "slot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6629,
+ "src": "2233:4:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 6639,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2225:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 6638,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2225:7:21",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 6641,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2225:13:21",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 6642,
+ "name": "pos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6631,
+ "src": "2241:3:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2225:19:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2217:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 6636,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2217:7:21",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 6644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2217:28:21",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 6635,
+ "id": 6645,
+ "nodeType": "Return",
+ "src": "2210:35:21"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6627,
+ "nodeType": "StructuredDocumentation",
+ "src": "1990:99:21",
+ "text": " @dev Add an offset to a slot to get the n-th element of a structure or an array."
+ },
+ "id": 6648,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "offset",
+ "nameLocation": "2103:6:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6632,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6629,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2118:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6648,
+ "src": "2110:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6628,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2110:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6631,
+ "mutability": "mutable",
+ "name": "pos",
+ "nameLocation": "2132:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6648,
+ "src": "2124:11:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6630,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2124:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2109:27:21"
+ },
+ "returnParameters": {
+ "id": 6635,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6634,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "2168:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6648,
+ "src": "2160:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6633,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2160:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2159:16:21"
+ },
+ "scope": 6743,
+ "src": "2094:168:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6657,
+ "nodeType": "Block",
+ "src": "2465:127:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2500:86:21",
+ "nodeType": "YulBlock",
+ "src": "2500:86:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2521:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2521:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "2527:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "2527:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2514:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "2514:6:21"
+ },
+ "nativeSrc": "2514:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2514:18:21"
+ },
+ "nativeSrc": "2514:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "2514:18:21"
+ },
+ {
+ "nativeSrc": "2545:31:21",
+ "nodeType": "YulAssignment",
+ "src": "2545:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2565:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2565:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2571:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2571:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "2555:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "2555:9:21"
+ },
+ "nativeSrc": "2555:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2555:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "2545:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "2545:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6654,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2545:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6651,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2527:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6656,
+ "nodeType": "InlineAssembly",
+ "src": "2475:111:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6649,
+ "nodeType": "StructuredDocumentation",
+ "src": "2268:118:21",
+ "text": " @dev Derive the location of the first element in an array from the slot where the length is stored."
+ },
+ "id": 6658,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveArray",
+ "nameLocation": "2400:11:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6652,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6651,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2420:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6658,
+ "src": "2412:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6650,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2412:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2411:14:21"
+ },
+ "returnParameters": {
+ "id": 6655,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6654,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "2457:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6658,
+ "src": "2449:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6653,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2449:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2448:16:21"
+ },
+ "scope": 6743,
+ "src": "2391:201:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6669,
+ "nodeType": "Block",
+ "src": "2770:179:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2805:138:21",
+ "nodeType": "YulBlock",
+ "src": "2805:138:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2826:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2826:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "2836:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:21"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2845:2:21",
+ "nodeType": "YulLiteral",
+ "src": "2845:2:21",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2853:1:21",
+ "nodeType": "YulLiteral",
+ "src": "2853:1:21",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "2849:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "2849:3:21"
+ },
+ "nativeSrc": "2849:6:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2849:6:21"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nativeSrc": "2841:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "2841:3:21"
+ },
+ "nativeSrc": "2841:15:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2841:15:21"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "2832:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "2832:3:21"
+ },
+ "nativeSrc": "2832:25:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2832:25:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2819:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "2819:6:21"
+ },
+ "nativeSrc": "2819:39:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2819:39:21"
+ },
+ "nativeSrc": "2819:39:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "2819:39:21"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2878:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2878:4:21",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "2884:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "2884:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2871:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "2871:6:21"
+ },
+ "nativeSrc": "2871:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2871:18:21"
+ },
+ "nativeSrc": "2871:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "2871:18:21"
+ },
+ {
+ "nativeSrc": "2902:31:21",
+ "nodeType": "YulAssignment",
+ "src": "2902:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2922:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2922:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2928:4:21",
+ "nodeType": "YulLiteral",
+ "src": "2928:4:21",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "2912:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "2912:9:21"
+ },
+ "nativeSrc": "2912:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "2912:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "2902:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "2902:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6663,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2836:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6666,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2902:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6661,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2884:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6668,
+ "nodeType": "InlineAssembly",
+ "src": "2780:163:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6659,
+ "nodeType": "StructuredDocumentation",
+ "src": "2598:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6670,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "2690:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6661,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2712:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6670,
+ "src": "2704:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6660,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2704:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6663,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "2726:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6670,
+ "src": "2718:11:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 6662,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2718:7:21",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2703:27:21"
+ },
+ "returnParameters": {
+ "id": 6667,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6666,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "2762:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6670,
+ "src": "2754:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6665,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2754:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2753:16:21"
+ },
+ "scope": 6743,
+ "src": "2681:268:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6681,
+ "nodeType": "Block",
+ "src": "3124:173:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3159:132:21",
+ "nodeType": "YulBlock",
+ "src": "3159:132:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3180:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3180:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "3200:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "3200:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "3193:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3193:6:21"
+ },
+ "nativeSrc": "3193:11:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3193:11:21"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "3186:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3186:6:21"
+ },
+ "nativeSrc": "3186:19:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3186:19:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3173:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3173:6:21"
+ },
+ "nativeSrc": "3173:33:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3173:33:21"
+ },
+ "nativeSrc": "3173:33:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3173:33:21"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3226:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3226:4:21",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "3232:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "3232:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3219:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3219:6:21"
+ },
+ "nativeSrc": "3219:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3219:18:21"
+ },
+ "nativeSrc": "3219:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3219:18:21"
+ },
+ {
+ "nativeSrc": "3250:31:21",
+ "nodeType": "YulAssignment",
+ "src": "3250:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3270:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3270:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3276:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3276:4:21",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "3260:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "3260:9:21"
+ },
+ "nativeSrc": "3260:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3260:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "3250:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3250:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6675,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3200:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6678,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3250:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6673,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3232:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6680,
+ "nodeType": "InlineAssembly",
+ "src": "3134:157:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6671,
+ "nodeType": "StructuredDocumentation",
+ "src": "2955:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6682,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "3047:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6676,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6673,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "3069:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6682,
+ "src": "3061:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6672,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3061:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6675,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3080:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6682,
+ "src": "3075:8:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6674,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3075:4:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3060:24:21"
+ },
+ "returnParameters": {
+ "id": 6679,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6678,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "3116:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6682,
+ "src": "3108:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6677,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3108:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3107:16:21"
+ },
+ "scope": 6743,
+ "src": "3038:259:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6693,
+ "nodeType": "Block",
+ "src": "3475:157:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3510:116:21",
+ "nodeType": "YulBlock",
+ "src": "3510:116:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3531:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3531:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "name": "key",
+ "nativeSrc": "3537:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "3537:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3524:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3524:6:21"
+ },
+ "nativeSrc": "3524:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3524:17:21"
+ },
+ "nativeSrc": "3524:17:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3524:17:21"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3561:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3561:4:21",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "3567:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "3567:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3554:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3554:6:21"
+ },
+ "nativeSrc": "3554:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3554:18:21"
+ },
+ "nativeSrc": "3554:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3554:18:21"
+ },
+ {
+ "nativeSrc": "3585:31:21",
+ "nodeType": "YulAssignment",
+ "src": "3585:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3605:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3605:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3611:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3611:4:21",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "3595:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "3595:9:21"
+ },
+ "nativeSrc": "3595:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3595:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "3585:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3585:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6687,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3537:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6690,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3585:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6685,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3567:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6692,
+ "nodeType": "InlineAssembly",
+ "src": "3485:141:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6683,
+ "nodeType": "StructuredDocumentation",
+ "src": "3303:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6694,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "3395:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6688,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6685,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "3417:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6694,
+ "src": "3409:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6684,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3409:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6687,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3431:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6694,
+ "src": "3423:11:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6686,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3423:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3408:27:21"
+ },
+ "returnParameters": {
+ "id": 6691,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6690,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "3467:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6694,
+ "src": "3459:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6689,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3459:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3458:16:21"
+ },
+ "scope": 6743,
+ "src": "3386:246:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6705,
+ "nodeType": "Block",
+ "src": "3810:157:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3845:116:21",
+ "nodeType": "YulBlock",
+ "src": "3845:116:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3866:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3866:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "name": "key",
+ "nativeSrc": "3872:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "3872:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3859:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3859:6:21"
+ },
+ "nativeSrc": "3859:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3859:17:21"
+ },
+ "nativeSrc": "3859:17:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3859:17:21"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3896:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3896:4:21",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "3902:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "3902:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3889:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3889:6:21"
+ },
+ "nativeSrc": "3889:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3889:18:21"
+ },
+ "nativeSrc": "3889:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "3889:18:21"
+ },
+ {
+ "nativeSrc": "3920:31:21",
+ "nodeType": "YulAssignment",
+ "src": "3920:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3940:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3940:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3946:4:21",
+ "nodeType": "YulLiteral",
+ "src": "3946:4:21",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "3930:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "3930:9:21"
+ },
+ "nativeSrc": "3930:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "3930:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "3920:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "3920:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6699,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3872:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6702,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3920:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6697,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3902:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6704,
+ "nodeType": "InlineAssembly",
+ "src": "3820:141:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6695,
+ "nodeType": "StructuredDocumentation",
+ "src": "3638:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6706,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "3730:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6700,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6697,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "3752:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6706,
+ "src": "3744:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6696,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3744:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6699,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3766:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6706,
+ "src": "3758:11:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6698,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3758:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3743:27:21"
+ },
+ "returnParameters": {
+ "id": 6703,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6702,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "3802:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6706,
+ "src": "3794:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6701,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3794:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3793:16:21"
+ },
+ "scope": 6743,
+ "src": "3721:246:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6717,
+ "nodeType": "Block",
+ "src": "4144:157:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4179:116:21",
+ "nodeType": "YulBlock",
+ "src": "4179:116:21",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4200:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4200:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "name": "key",
+ "nativeSrc": "4206:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4206:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4193:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4193:6:21"
+ },
+ "nativeSrc": "4193:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4193:17:21"
+ },
+ "nativeSrc": "4193:17:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "4193:17:21"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4230:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4230:4:21",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "4236:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "4236:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4223:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4223:6:21"
+ },
+ "nativeSrc": "4223:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4223:18:21"
+ },
+ "nativeSrc": "4223:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "4223:18:21"
+ },
+ {
+ "nativeSrc": "4254:31:21",
+ "nodeType": "YulAssignment",
+ "src": "4254:31:21",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4274:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4274:4:21",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4280:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4280:4:21",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "4264:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "4264:9:21"
+ },
+ "nativeSrc": "4264:21:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4264:21:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "4254:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4254:6:21"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6711,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4206:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6714,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4254:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6709,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4236:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6716,
+ "nodeType": "InlineAssembly",
+ "src": "4154:141:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6707,
+ "nodeType": "StructuredDocumentation",
+ "src": "3973:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6718,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "4065:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6709,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "4087:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6718,
+ "src": "4079:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6708,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4079:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6711,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4100:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6718,
+ "src": "4093:10:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 6710,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4093:6:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4078:26:21"
+ },
+ "returnParameters": {
+ "id": 6715,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6714,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4136:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6718,
+ "src": "4128:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6713,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4128:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4127:16:21"
+ },
+ "scope": 6743,
+ "src": "4056:245:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6729,
+ "nodeType": "Block",
+ "src": "4485:326:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4520:285:21",
+ "nodeType": "YulBlock",
+ "src": "4520:285:21",
+ "statements": [
+ {
+ "nativeSrc": "4534:24:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4534:24:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "4554:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "4548:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "4548:5:21"
+ },
+ "nativeSrc": "4548:10:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4548:10:21"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "4538:6:21",
+ "nodeType": "YulTypedName",
+ "src": "4538:6:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4571:27:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4571:27:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "4588:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4588:3:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4593:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4593:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4584:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4584:3:21"
+ },
+ "nativeSrc": "4584:14:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4584:14:21"
+ },
+ "variables": [
+ {
+ "name": "begin",
+ "nativeSrc": "4575:5:21",
+ "nodeType": "YulTypedName",
+ "src": "4575:5:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4611:29:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4611:29:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "begin",
+ "nativeSrc": "4626:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "4626:5:21"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "4633:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4633:6:21"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4622:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4622:3:21"
+ },
+ "nativeSrc": "4622:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4622:18:21"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "4615:3:21",
+ "nodeType": "YulTypedName",
+ "src": "4615:3:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4653:23:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4653:23:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "4672:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4672:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "4666:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "4666:5:21"
+ },
+ "nativeSrc": "4666:10:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4666:10:21"
+ },
+ "variables": [
+ {
+ "name": "cache",
+ "nativeSrc": "4657:5:21",
+ "nodeType": "YulTypedName",
+ "src": "4657:5:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "4696:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4696:3:21"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "4701:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "4701:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4689:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4689:6:21"
+ },
+ "nativeSrc": "4689:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4689:17:21"
+ },
+ "nativeSrc": "4689:17:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "4689:17:21"
+ },
+ {
+ "nativeSrc": "4719:45:21",
+ "nodeType": "YulAssignment",
+ "src": "4719:45:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "begin",
+ "nativeSrc": "4739:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "4739:5:21"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "4750:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4750:6:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4758:4:21",
+ "nodeType": "YulLiteral",
+ "src": "4758:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4746:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4746:3:21"
+ },
+ "nativeSrc": "4746:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4746:17:21"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "4729:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "4729:9:21"
+ },
+ "nativeSrc": "4729:35:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4729:35:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "4719:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4719:6:21"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "4784:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "4784:3:21"
+ },
+ {
+ "name": "cache",
+ "nativeSrc": "4789:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "4789:5:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4777:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "4777:6:21"
+ },
+ "nativeSrc": "4777:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "4777:18:21"
+ },
+ "nativeSrc": "4777:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "4777:18:21"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6723,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4554:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6723,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4588:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6726,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4719:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6721,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4701:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6728,
+ "nodeType": "InlineAssembly",
+ "src": "4495:310:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6719,
+ "nodeType": "StructuredDocumentation",
+ "src": "4307:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6730,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "4399:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6724,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6721,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "4421:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6730,
+ "src": "4413:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6720,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4413:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6723,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4441:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6730,
+ "src": "4427:17:21",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6722,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4427:6:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4412:33:21"
+ },
+ "returnParameters": {
+ "id": 6727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6726,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4477:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6730,
+ "src": "4469:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6725,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4469:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4468:16:21"
+ },
+ "scope": 6743,
+ "src": "4390:421:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6741,
+ "nodeType": "Block",
+ "src": "4994:326:21",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "5029:285:21",
+ "nodeType": "YulBlock",
+ "src": "5029:285:21",
+ "statements": [
+ {
+ "nativeSrc": "5043:24:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5043:24:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "5063:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5063:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5057:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "5057:5:21"
+ },
+ "nativeSrc": "5057:10:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5057:10:21"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "5047:6:21",
+ "nodeType": "YulTypedName",
+ "src": "5047:6:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5080:27:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5080:27:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "key",
+ "nativeSrc": "5097:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5097:3:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5102:4:21",
+ "nodeType": "YulLiteral",
+ "src": "5102:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5093:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5093:3:21"
+ },
+ "nativeSrc": "5093:14:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5093:14:21"
+ },
+ "variables": [
+ {
+ "name": "begin",
+ "nativeSrc": "5084:5:21",
+ "nodeType": "YulTypedName",
+ "src": "5084:5:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5120:29:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5120:29:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "begin",
+ "nativeSrc": "5135:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "5135:5:21"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "5142:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "5142:6:21"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5131:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5131:3:21"
+ },
+ "nativeSrc": "5131:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5131:18:21"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "5124:3:21",
+ "nodeType": "YulTypedName",
+ "src": "5124:3:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5162:23:21",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5162:23:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "5181:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5181:3:21"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5175:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "5175:5:21"
+ },
+ "nativeSrc": "5175:10:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5175:10:21"
+ },
+ "variables": [
+ {
+ "name": "cache",
+ "nativeSrc": "5166:5:21",
+ "nodeType": "YulTypedName",
+ "src": "5166:5:21",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "5205:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5205:3:21"
+ },
+ {
+ "name": "slot",
+ "nativeSrc": "5210:4:21",
+ "nodeType": "YulIdentifier",
+ "src": "5210:4:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5198:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "5198:6:21"
+ },
+ "nativeSrc": "5198:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5198:17:21"
+ },
+ "nativeSrc": "5198:17:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "5198:17:21"
+ },
+ {
+ "nativeSrc": "5228:45:21",
+ "nodeType": "YulAssignment",
+ "src": "5228:45:21",
+ "value": {
+ "arguments": [
+ {
+ "name": "begin",
+ "nativeSrc": "5248:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "5248:5:21"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "5259:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "5259:6:21"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5267:4:21",
+ "nodeType": "YulLiteral",
+ "src": "5267:4:21",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5255:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5255:3:21"
+ },
+ "nativeSrc": "5255:17:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5255:17:21"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "5238:9:21",
+ "nodeType": "YulIdentifier",
+ "src": "5238:9:21"
+ },
+ "nativeSrc": "5238:35:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5238:35:21"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "5228:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "5228:6:21"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "5293:3:21",
+ "nodeType": "YulIdentifier",
+ "src": "5293:3:21"
+ },
+ {
+ "name": "cache",
+ "nativeSrc": "5298:5:21",
+ "nodeType": "YulIdentifier",
+ "src": "5298:5:21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5286:6:21",
+ "nodeType": "YulIdentifier",
+ "src": "5286:6:21"
+ },
+ "nativeSrc": "5286:18:21",
+ "nodeType": "YulFunctionCall",
+ "src": "5286:18:21"
+ },
+ "nativeSrc": "5286:18:21",
+ "nodeType": "YulExpressionStatement",
+ "src": "5286:18:21"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6735,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5063:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6735,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5097:3:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6738,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5228:6:21",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6733,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5210:4:21",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6740,
+ "nodeType": "InlineAssembly",
+ "src": "5004:310:21"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6731,
+ "nodeType": "StructuredDocumentation",
+ "src": "4817:78:21",
+ "text": " @dev Derive the location of a mapping element from the key."
+ },
+ "id": 6742,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deriveMapping",
+ "nameLocation": "4909:13:21",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6736,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6733,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "4931:4:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6742,
+ "src": "4923:12:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6732,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4923:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6735,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4950:3:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6742,
+ "src": "4937:16:21",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 6734,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4937:5:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4922:32:21"
+ },
+ "returnParameters": {
+ "id": 6739,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6738,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4986:6:21",
+ "nodeType": "VariableDeclaration",
+ "scope": 6742,
+ "src": "4978:14:21",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6737,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4978:7:21",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4977:16:21"
+ },
+ "scope": 6743,
+ "src": "4900:420:21",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 6744,
+ "src": "1599:3723:21",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "199:5124:21"
+ },
+ "id": 21
+ },
+ "@openzeppelin/contracts/utils/StorageSlot.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol",
+ "exportedSymbols": {
+ "StorageSlot": [
+ 6867
+ ]
+ },
+ "id": 6868,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 6745,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "193:24:22"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "StorageSlot",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 6746,
+ "nodeType": "StructuredDocumentation",
+ "src": "219:1187:22",
+ "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."
+ },
+ "fullyImplemented": true,
+ "id": 6867,
+ "linearizedBaseContracts": [
+ 6867
+ ],
+ "name": "StorageSlot",
+ "nameLocation": "1415:11:22",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "StorageSlot.AddressSlot",
+ "id": 6749,
+ "members": [
+ {
+ "constant": false,
+ "id": 6748,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1470:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6749,
+ "src": "1462:13:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 6747,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1462:7:22",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "AddressSlot",
+ "nameLocation": "1440:11:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1433:49:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.BooleanSlot",
+ "id": 6752,
+ "members": [
+ {
+ "constant": false,
+ "id": 6751,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1522:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6752,
+ "src": "1517:10:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 6750,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1517:4:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "BooleanSlot",
+ "nameLocation": "1495:11:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1488:46:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.Bytes32Slot",
+ "id": 6755,
+ "members": [
+ {
+ "constant": false,
+ "id": 6754,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1577:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6755,
+ "src": "1569:13:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6753,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1569:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Bytes32Slot",
+ "nameLocation": "1547:11:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1540:49:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.Uint256Slot",
+ "id": 6758,
+ "members": [
+ {
+ "constant": false,
+ "id": 6757,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1632:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6758,
+ "src": "1624:13:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6756,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1624:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Uint256Slot",
+ "nameLocation": "1602:11:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1595:49:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.Int256Slot",
+ "id": 6761,
+ "members": [
+ {
+ "constant": false,
+ "id": 6760,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1685:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6761,
+ "src": "1678:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 6759,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1678:6:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Int256Slot",
+ "nameLocation": "1657:10:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1650:47:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.StringSlot",
+ "id": 6764,
+ "members": [
+ {
+ "constant": false,
+ "id": 6763,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1738:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6764,
+ "src": "1731:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6762,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1731:6:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "StringSlot",
+ "nameLocation": "1710:10:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1703:47:22",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "StorageSlot.BytesSlot",
+ "id": 6767,
+ "members": [
+ {
+ "constant": false,
+ "id": 6766,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1789:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6767,
+ "src": "1783:11:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 6765,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1783:5:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "BytesSlot",
+ "nameLocation": "1763:9:22",
+ "nodeType": "StructDefinition",
+ "scope": 6867,
+ "src": "1756:45:22",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 6777,
+ "nodeType": "Block",
+ "src": "1983:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2018:38:22",
+ "nodeType": "YulBlock",
+ "src": "2018:38:22",
+ "statements": [
+ {
+ "nativeSrc": "2032:14:22",
+ "nodeType": "YulAssignment",
+ "src": "2032:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "2042:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "2042:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "2032:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "2032:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6774,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2032:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6770,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2042:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6776,
+ "nodeType": "InlineAssembly",
+ "src": "1993:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6768,
+ "nodeType": "StructuredDocumentation",
+ "src": "1807:87:22",
+ "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`."
+ },
+ "id": 6778,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getAddressSlot",
+ "nameLocation": "1908:14:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6771,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6770,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "1931:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6778,
+ "src": "1923:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6769,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1923:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1922:14:22"
+ },
+ "returnParameters": {
+ "id": 6775,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6774,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "1980:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6778,
+ "src": "1960:21:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr",
+ "typeString": "struct StorageSlot.AddressSlot"
+ },
+ "typeName": {
+ "id": 6773,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6772,
+ "name": "AddressSlot",
+ "nameLocations": [
+ "1960:11:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6749,
+ "src": "1960:11:22"
+ },
+ "referencedDeclaration": 6749,
+ "src": "1960:11:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr",
+ "typeString": "struct StorageSlot.AddressSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1959:23:22"
+ },
+ "scope": 6867,
+ "src": "1899:163:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6788,
+ "nodeType": "Block",
+ "src": "2243:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2278:38:22",
+ "nodeType": "YulBlock",
+ "src": "2278:38:22",
+ "statements": [
+ {
+ "nativeSrc": "2292:14:22",
+ "nodeType": "YulAssignment",
+ "src": "2292:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "2302:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "2302:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "2292:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "2292:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6785,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2292:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6781,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2302:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6787,
+ "nodeType": "InlineAssembly",
+ "src": "2253:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6779,
+ "nodeType": "StructuredDocumentation",
+ "src": "2068:86:22",
+ "text": " @dev Returns a `BooleanSlot` with member `value` located at `slot`."
+ },
+ "id": 6789,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getBooleanSlot",
+ "nameLocation": "2168:14:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6782,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6781,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2191:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6789,
+ "src": "2183:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6780,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2183:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2182:14:22"
+ },
+ "returnParameters": {
+ "id": 6786,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6785,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "2240:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6789,
+ "src": "2220:21:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BooleanSlot_$6752_storage_ptr",
+ "typeString": "struct StorageSlot.BooleanSlot"
+ },
+ "typeName": {
+ "id": 6784,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6783,
+ "name": "BooleanSlot",
+ "nameLocations": [
+ "2220:11:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6752,
+ "src": "2220:11:22"
+ },
+ "referencedDeclaration": 6752,
+ "src": "2220:11:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BooleanSlot_$6752_storage_ptr",
+ "typeString": "struct StorageSlot.BooleanSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2219:23:22"
+ },
+ "scope": 6867,
+ "src": "2159:163:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6799,
+ "nodeType": "Block",
+ "src": "2503:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2538:38:22",
+ "nodeType": "YulBlock",
+ "src": "2538:38:22",
+ "statements": [
+ {
+ "nativeSrc": "2552:14:22",
+ "nodeType": "YulAssignment",
+ "src": "2552:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "2562:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "2562:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "2552:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "2552:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6796,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2552:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6792,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2562:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6798,
+ "nodeType": "InlineAssembly",
+ "src": "2513:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6790,
+ "nodeType": "StructuredDocumentation",
+ "src": "2328:86:22",
+ "text": " @dev Returns a `Bytes32Slot` with member `value` located at `slot`."
+ },
+ "id": 6800,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getBytes32Slot",
+ "nameLocation": "2428:14:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6793,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6792,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2451:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6800,
+ "src": "2443:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6791,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2443:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2442:14:22"
+ },
+ "returnParameters": {
+ "id": 6797,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6796,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "2500:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6800,
+ "src": "2480:21:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr",
+ "typeString": "struct StorageSlot.Bytes32Slot"
+ },
+ "typeName": {
+ "id": 6795,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6794,
+ "name": "Bytes32Slot",
+ "nameLocations": [
+ "2480:11:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6755,
+ "src": "2480:11:22"
+ },
+ "referencedDeclaration": 6755,
+ "src": "2480:11:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr",
+ "typeString": "struct StorageSlot.Bytes32Slot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2479:23:22"
+ },
+ "scope": 6867,
+ "src": "2419:163:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6810,
+ "nodeType": "Block",
+ "src": "2763:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2798:38:22",
+ "nodeType": "YulBlock",
+ "src": "2798:38:22",
+ "statements": [
+ {
+ "nativeSrc": "2812:14:22",
+ "nodeType": "YulAssignment",
+ "src": "2812:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "2822:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "2822:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "2812:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "2812:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6807,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2812:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6803,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2822:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6809,
+ "nodeType": "InlineAssembly",
+ "src": "2773:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6801,
+ "nodeType": "StructuredDocumentation",
+ "src": "2588:86:22",
+ "text": " @dev Returns a `Uint256Slot` with member `value` located at `slot`."
+ },
+ "id": 6811,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getUint256Slot",
+ "nameLocation": "2688:14:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6804,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6803,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2711:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6811,
+ "src": "2703:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6802,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2703:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2702:14:22"
+ },
+ "returnParameters": {
+ "id": 6808,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6807,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "2760:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6811,
+ "src": "2740:21:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot"
+ },
+ "typeName": {
+ "id": 6806,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6805,
+ "name": "Uint256Slot",
+ "nameLocations": [
+ "2740:11:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6758,
+ "src": "2740:11:22"
+ },
+ "referencedDeclaration": 6758,
+ "src": "2740:11:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr",
+ "typeString": "struct StorageSlot.Uint256Slot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2739:23:22"
+ },
+ "scope": 6867,
+ "src": "2679:163:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6821,
+ "nodeType": "Block",
+ "src": "3020:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3055:38:22",
+ "nodeType": "YulBlock",
+ "src": "3055:38:22",
+ "statements": [
+ {
+ "nativeSrc": "3069:14:22",
+ "nodeType": "YulAssignment",
+ "src": "3069:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "3079:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "3079:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "3069:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "3069:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6818,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3069:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6814,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3079:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6820,
+ "nodeType": "InlineAssembly",
+ "src": "3030:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6812,
+ "nodeType": "StructuredDocumentation",
+ "src": "2848:85:22",
+ "text": " @dev Returns a `Int256Slot` with member `value` located at `slot`."
+ },
+ "id": 6822,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getInt256Slot",
+ "nameLocation": "2947:13:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6815,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6814,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "2969:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6822,
+ "src": "2961:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6813,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2961:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2960:14:22"
+ },
+ "returnParameters": {
+ "id": 6819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6818,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "3017:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6822,
+ "src": "2998:20:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Int256Slot_$6761_storage_ptr",
+ "typeString": "struct StorageSlot.Int256Slot"
+ },
+ "typeName": {
+ "id": 6817,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6816,
+ "name": "Int256Slot",
+ "nameLocations": [
+ "2998:10:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6761,
+ "src": "2998:10:22"
+ },
+ "referencedDeclaration": 6761,
+ "src": "2998:10:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Int256Slot_$6761_storage_ptr",
+ "typeString": "struct StorageSlot.Int256Slot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2997:22:22"
+ },
+ "scope": 6867,
+ "src": "2938:161:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6832,
+ "nodeType": "Block",
+ "src": "3277:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3312:38:22",
+ "nodeType": "YulBlock",
+ "src": "3312:38:22",
+ "statements": [
+ {
+ "nativeSrc": "3326:14:22",
+ "nodeType": "YulAssignment",
+ "src": "3326:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "3336:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "3336:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "3326:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "3326:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6829,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3326:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6825,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3336:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6831,
+ "nodeType": "InlineAssembly",
+ "src": "3287:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6823,
+ "nodeType": "StructuredDocumentation",
+ "src": "3105:85:22",
+ "text": " @dev Returns a `StringSlot` with member `value` located at `slot`."
+ },
+ "id": 6833,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getStringSlot",
+ "nameLocation": "3204:13:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6826,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6825,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "3226:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6833,
+ "src": "3218:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6824,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3218:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3217:14:22"
+ },
+ "returnParameters": {
+ "id": 6830,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6829,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "3274:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6833,
+ "src": "3255:20:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr",
+ "typeString": "struct StorageSlot.StringSlot"
+ },
+ "typeName": {
+ "id": 6828,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6827,
+ "name": "StringSlot",
+ "nameLocations": [
+ "3255:10:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6764,
+ "src": "3255:10:22"
+ },
+ "referencedDeclaration": 6764,
+ "src": "3255:10:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr",
+ "typeString": "struct StorageSlot.StringSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3254:22:22"
+ },
+ "scope": 6867,
+ "src": "3195:161:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6843,
+ "nodeType": "Block",
+ "src": "3558:85:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3593:44:22",
+ "nodeType": "YulBlock",
+ "src": "3593:44:22",
+ "statements": [
+ {
+ "nativeSrc": "3607:20:22",
+ "nodeType": "YulAssignment",
+ "src": "3607:20:22",
+ "value": {
+ "name": "store.slot",
+ "nativeSrc": "3617:10:22",
+ "nodeType": "YulIdentifier",
+ "src": "3617:10:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "3607:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "3607:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6840,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3607:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6836,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3617:10:22",
+ "suffix": "slot",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6842,
+ "nodeType": "InlineAssembly",
+ "src": "3568:69:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6834,
+ "nodeType": "StructuredDocumentation",
+ "src": "3362:101:22",
+ "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`."
+ },
+ "id": 6844,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getStringSlot",
+ "nameLocation": "3477:13:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6837,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6836,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "3506:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6844,
+ "src": "3491:20:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6835,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3491:6:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3490:22:22"
+ },
+ "returnParameters": {
+ "id": 6841,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6840,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "3555:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6844,
+ "src": "3536:20:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr",
+ "typeString": "struct StorageSlot.StringSlot"
+ },
+ "typeName": {
+ "id": 6839,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6838,
+ "name": "StringSlot",
+ "nameLocations": [
+ "3536:10:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6764,
+ "src": "3536:10:22"
+ },
+ "referencedDeclaration": 6764,
+ "src": "3536:10:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr",
+ "typeString": "struct StorageSlot.StringSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3535:22:22"
+ },
+ "scope": 6867,
+ "src": "3468:175:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6854,
+ "nodeType": "Block",
+ "src": "3818:79:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3853:38:22",
+ "nodeType": "YulBlock",
+ "src": "3853:38:22",
+ "statements": [
+ {
+ "nativeSrc": "3867:14:22",
+ "nodeType": "YulAssignment",
+ "src": "3867:14:22",
+ "value": {
+ "name": "slot",
+ "nativeSrc": "3877:4:22",
+ "nodeType": "YulIdentifier",
+ "src": "3877:4:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "3867:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "3867:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6851,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3867:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6847,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3877:4:22",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6853,
+ "nodeType": "InlineAssembly",
+ "src": "3828:63:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6845,
+ "nodeType": "StructuredDocumentation",
+ "src": "3649:84:22",
+ "text": " @dev Returns a `BytesSlot` with member `value` located at `slot`."
+ },
+ "id": 6855,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getBytesSlot",
+ "nameLocation": "3747:12:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6848,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6847,
+ "mutability": "mutable",
+ "name": "slot",
+ "nameLocation": "3768:4:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6855,
+ "src": "3760:12:22",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 6846,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3760:7:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3759:14:22"
+ },
+ "returnParameters": {
+ "id": 6852,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6851,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "3815:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6855,
+ "src": "3797:19:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr",
+ "typeString": "struct StorageSlot.BytesSlot"
+ },
+ "typeName": {
+ "id": 6850,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6849,
+ "name": "BytesSlot",
+ "nameLocations": [
+ "3797:9:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6767,
+ "src": "3797:9:22"
+ },
+ "referencedDeclaration": 6767,
+ "src": "3797:9:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr",
+ "typeString": "struct StorageSlot.BytesSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3796:21:22"
+ },
+ "scope": 6867,
+ "src": "3738:159:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 6865,
+ "nodeType": "Block",
+ "src": "4094:85:22",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4129:44:22",
+ "nodeType": "YulBlock",
+ "src": "4129:44:22",
+ "statements": [
+ {
+ "nativeSrc": "4143:20:22",
+ "nodeType": "YulAssignment",
+ "src": "4143:20:22",
+ "value": {
+ "name": "store.slot",
+ "nativeSrc": "4153:10:22",
+ "nodeType": "YulIdentifier",
+ "src": "4153:10:22"
+ },
+ "variableNames": [
+ {
+ "name": "r.slot",
+ "nativeSrc": "4143:6:22",
+ "nodeType": "YulIdentifier",
+ "src": "4143:6:22"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6862,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "4143:6:22",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6858,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "4153:10:22",
+ "suffix": "slot",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6864,
+ "nodeType": "InlineAssembly",
+ "src": "4104:69:22"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6856,
+ "nodeType": "StructuredDocumentation",
+ "src": "3903:99:22",
+ "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."
+ },
+ "id": 6866,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getBytesSlot",
+ "nameLocation": "4016:12:22",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6859,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6858,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "4043:5:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6866,
+ "src": "4029:19:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 6857,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4029:5:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4028:21:22"
+ },
+ "returnParameters": {
+ "id": 6863,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6862,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "4091:1:22",
+ "nodeType": "VariableDeclaration",
+ "scope": 6866,
+ "src": "4073:19:22",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr",
+ "typeString": "struct StorageSlot.BytesSlot"
+ },
+ "typeName": {
+ "id": 6861,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 6860,
+ "name": "BytesSlot",
+ "nameLocations": [
+ "4073:9:22"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 6767,
+ "src": "4073:9:22"
+ },
+ "referencedDeclaration": 6767,
+ "src": "4073:9:22",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr",
+ "typeString": "struct StorageSlot.BytesSlot"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4072:21:22"
+ },
+ "scope": 6867,
+ "src": "4007:172:22",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 6868,
+ "src": "1407:2774:22",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "193:3989:22"
+ },
+ "id": 22
+ },
+ "@openzeppelin/contracts/utils/Strings.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
+ "exportedSymbols": {
+ "Math": [
+ 10360
+ ],
+ "SafeCast": [
+ 12125
+ ],
+ "SignedMath": [
+ 12269
+ ],
+ "Strings": [
+ 8269
+ ]
+ },
+ "id": 8270,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 6869,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "101:24:23"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol",
+ "file": "./math/Math.sol",
+ "id": 6871,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 8270,
+ "sourceUnit": 10361,
+ "src": "127:37:23",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 6870,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "135:4:23",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol",
+ "file": "./math/SafeCast.sol",
+ "id": 6873,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 8270,
+ "sourceUnit": 12126,
+ "src": "165:45:23",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 6872,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "173:8:23",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol",
+ "file": "./math/SignedMath.sol",
+ "id": 6875,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 8270,
+ "sourceUnit": 12270,
+ "src": "211:49:23",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 6874,
+ "name": "SignedMath",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12269,
+ "src": "219:10:23",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Strings",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 6876,
+ "nodeType": "StructuredDocumentation",
+ "src": "262:34:23",
+ "text": " @dev String operations."
+ },
+ "fullyImplemented": true,
+ "id": 8269,
+ "linearizedBaseContracts": [
+ 8269
+ ],
+ "name": "Strings",
+ "nameLocation": "305:7:23",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 6878,
+ "libraryName": {
+ "id": 6877,
+ "name": "SafeCast",
+ "nameLocations": [
+ "325:8:23"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12125,
+ "src": "325:8:23"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "319:21:23"
+ },
+ {
+ "constant": true,
+ "id": 6881,
+ "mutability": "constant",
+ "name": "HEX_DIGITS",
+ "nameLocation": "371:10:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8269,
+ "src": "346:56:23",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes16",
+ "typeString": "bytes16"
+ },
+ "typeName": {
+ "id": 6879,
+ "name": "bytes16",
+ "nodeType": "ElementaryTypeName",
+ "src": "346:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes16",
+ "typeString": "bytes16"
+ }
+ },
+ "value": {
+ "hexValue": "30313233343536373839616263646566",
+ "id": 6880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "384:18:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f",
+ "typeString": "literal_string \"0123456789abcdef\""
+ },
+ "value": "0123456789abcdef"
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": true,
+ "id": 6884,
+ "mutability": "constant",
+ "name": "ADDRESS_LENGTH",
+ "nameLocation": "431:14:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8269,
+ "src": "408:42:23",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 6882,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "408:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "value": {
+ "hexValue": "3230",
+ "id": 6883,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "448:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20_by_1",
+ "typeString": "int_const 20"
+ },
+ "value": "20"
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": true,
+ "id": 6920,
+ "mutability": "constant",
+ "name": "SPECIAL_CHARS_LOOKUP",
+ "nameLocation": "481:20:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8269,
+ "src": "456:302:23",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6885,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "456:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_4951760157141521116776380160_by_1",
+ "typeString": "int_const 4951760157141521116776380160"
+ },
+ "id": 6919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_17179883264_by_1",
+ "typeString": "int_const 17179883264"
+ },
+ "id": 6914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_14080_by_1",
+ "typeString": "int_const 14080"
+ },
+ "id": 6909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_5888_by_1",
+ "typeString": "int_const 5888"
+ },
+ "id": 6904,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_1792_by_1",
+ "typeString": "int_const 1792"
+ },
+ "id": 6899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_768_by_1",
+ "typeString": "int_const 768"
+ },
+ "id": 6894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ },
+ "id": 6888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "513:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783038",
+ "id": 6887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "518:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "0x08"
+ },
+ "src": "513:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ }
+ }
+ ],
+ "id": 6889,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "512:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_512_by_1",
+ "typeString": "int_const 512"
+ },
+ "id": 6892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "552:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783039",
+ "id": 6891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "557:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9_by_1",
+ "typeString": "int_const 9"
+ },
+ "value": "0x09"
+ },
+ "src": "552:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_512_by_1",
+ "typeString": "int_const 512"
+ }
+ }
+ ],
+ "id": 6893,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "551:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_512_by_1",
+ "typeString": "int_const 512"
+ }
+ },
+ "src": "512:50:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_768_by_1",
+ "typeString": "int_const 768"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_1024_by_1",
+ "typeString": "int_const 1024"
+ },
+ "id": 6897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "585:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783061",
+ "id": 6896,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "590:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "0x0a"
+ },
+ "src": "585:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1024_by_1",
+ "typeString": "int_const 1024"
+ }
+ }
+ ],
+ "id": 6898,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "584:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1024_by_1",
+ "typeString": "int_const 1024"
+ }
+ },
+ "src": "512:83:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1792_by_1",
+ "typeString": "int_const 1792"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_4096_by_1",
+ "typeString": "int_const 4096"
+ },
+ "id": 6902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "622:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783063",
+ "id": 6901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "627:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "0x0c"
+ },
+ "src": "622:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4096_by_1",
+ "typeString": "int_const 4096"
+ }
+ }
+ ],
+ "id": 6903,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "621:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4096_by_1",
+ "typeString": "int_const 4096"
+ }
+ },
+ "src": "512:120:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5888_by_1",
+ "typeString": "int_const 5888"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_8192_by_1",
+ "typeString": "int_const 8192"
+ },
+ "id": 6907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "661:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783064",
+ "id": 6906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "666:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_13_by_1",
+ "typeString": "int_const 13"
+ },
+ "value": "0x0d"
+ },
+ "src": "661:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8192_by_1",
+ "typeString": "int_const 8192"
+ }
+ }
+ ],
+ "id": 6908,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "660:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8192_by_1",
+ "typeString": "int_const 8192"
+ }
+ },
+ "src": "512:159:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14080_by_1",
+ "typeString": "int_const 14080"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_17179869184_by_1",
+ "typeString": "int_const 17179869184"
+ },
+ "id": 6912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "706:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783232",
+ "id": 6911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "711:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_34_by_1",
+ "typeString": "int_const 34"
+ },
+ "value": "0x22"
+ },
+ "src": "706:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17179869184_by_1",
+ "typeString": "int_const 17179869184"
+ }
+ }
+ ],
+ "id": 6913,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "705:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17179869184_by_1",
+ "typeString": "int_const 17179869184"
+ }
+ },
+ "src": "512:204:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17179883264_by_1",
+ "typeString": "int_const 17179883264"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_4951760157141521099596496896_by_1",
+ "typeString": "int_const 4951760157141521099596496896"
+ },
+ "id": 6917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 6915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "748:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "30783563",
+ "id": 6916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "753:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_92_by_1",
+ "typeString": "int_const 92"
+ },
+ "value": "0x5c"
+ },
+ "src": "748:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4951760157141521099596496896_by_1",
+ "typeString": "int_const 4951760157141521099596496896"
+ }
+ }
+ ],
+ "id": 6918,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "747:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4951760157141521099596496896_by_1",
+ "typeString": "int_const 4951760157141521099596496896"
+ }
+ },
+ "src": "512:246:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4951760157141521116776380160_by_1",
+ "typeString": "int_const 4951760157141521116776380160"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "documentation": {
+ "id": 6921,
+ "nodeType": "StructuredDocumentation",
+ "src": "778:81:23",
+ "text": " @dev The `value` string doesn't fit in the specified `length`."
+ },
+ "errorSelector": "e22e27eb",
+ "id": 6927,
+ "name": "StringsInsufficientHexLength",
+ "nameLocation": "870:28:23",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 6926,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6923,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "907:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6927,
+ "src": "899:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6922,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "899:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 6925,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "922:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6927,
+ "src": "914:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6924,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "914:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "898:31:23"
+ },
+ "src": "864:66:23"
+ },
+ {
+ "documentation": {
+ "id": 6928,
+ "nodeType": "StructuredDocumentation",
+ "src": "936:108:23",
+ "text": " @dev The string being parsed contains characters that are not in scope of the given base."
+ },
+ "errorSelector": "94e2737e",
+ "id": 6930,
+ "name": "StringsInvalidChar",
+ "nameLocation": "1055:18:23",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 6929,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1073:2:23"
+ },
+ "src": "1049:27:23"
+ },
+ {
+ "documentation": {
+ "id": 6931,
+ "nodeType": "StructuredDocumentation",
+ "src": "1082:84:23",
+ "text": " @dev The string being parsed is not a properly formatted address."
+ },
+ "errorSelector": "1d15ae44",
+ "id": 6933,
+ "name": "StringsInvalidAddressFormat",
+ "nameLocation": "1177:27:23",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 6932,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1204:2:23"
+ },
+ "src": "1171:36:23"
+ },
+ {
+ "body": {
+ "id": 6980,
+ "nodeType": "Block",
+ "src": "1379:561:23",
+ "statements": [
+ {
+ "id": 6979,
+ "nodeType": "UncheckedBlock",
+ "src": "1389:545:23",
+ "statements": [
+ {
+ "assignments": [
+ 6942
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6942,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "1421:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6979,
+ "src": "1413:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6941,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1413:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6949,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 6945,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6936,
+ "src": "1441:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 6943,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "1430:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 6944,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1435:5:23",
+ "memberName": "log10",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 10192,
+ "src": "1430:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 6946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1430:17:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 6947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1450:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "1430:21:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1413:38:23"
+ },
+ {
+ "assignments": [
+ 6951
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6951,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "1479:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6979,
+ "src": "1465:20:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6950,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1465:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6956,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 6954,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6942,
+ "src": "1499:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "1488:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (string memory)"
+ },
+ "typeName": {
+ "id": 6952,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1492:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ }
+ },
+ "id": 6955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1488:18:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1465:41:23"
+ },
+ {
+ "assignments": [
+ 6958
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 6958,
+ "mutability": "mutable",
+ "name": "ptr",
+ "nameLocation": "1528:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6979,
+ "src": "1520:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6957,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1520:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 6959,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1520:11:23"
+ },
+ {
+ "AST": {
+ "nativeSrc": "1570:67:23",
+ "nodeType": "YulBlock",
+ "src": "1570:67:23",
+ "statements": [
+ {
+ "nativeSrc": "1588:35:23",
+ "nodeType": "YulAssignment",
+ "src": "1588:35:23",
+ "value": {
+ "arguments": [
+ {
+ "name": "buffer",
+ "nativeSrc": "1599:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "1599:6:23"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1611:2:23",
+ "nodeType": "YulLiteral",
+ "src": "1611:2:23",
+ "type": "",
+ "value": "32"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "1615:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "1615:6:23"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1607:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "1607:3:23"
+ },
+ "nativeSrc": "1607:15:23",
+ "nodeType": "YulFunctionCall",
+ "src": "1607:15:23"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1595:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "1595:3:23"
+ },
+ "nativeSrc": "1595:28:23",
+ "nodeType": "YulFunctionCall",
+ "src": "1595:28:23"
+ },
+ "variableNames": [
+ {
+ "name": "ptr",
+ "nativeSrc": "1588:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "1588:3:23"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6951,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1599:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6942,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1615:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6958,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1588:3:23",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6960,
+ "nodeType": "InlineAssembly",
+ "src": "1545:92:23"
+ },
+ {
+ "body": {
+ "id": 6975,
+ "nodeType": "Block",
+ "src": "1663:234:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 6963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "--",
+ "prefix": false,
+ "src": "1681:5:23",
+ "subExpression": {
+ "id": 6962,
+ "name": "ptr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6958,
+ "src": "1681:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6964,
+ "nodeType": "ExpressionStatement",
+ "src": "1681:5:23"
+ },
+ {
+ "AST": {
+ "nativeSrc": "1729:86:23",
+ "nodeType": "YulBlock",
+ "src": "1729:86:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "1759:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "1759:3:23"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1773:5:23",
+ "nodeType": "YulIdentifier",
+ "src": "1773:5:23"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1780:2:23",
+ "nodeType": "YulLiteral",
+ "src": "1780:2:23",
+ "type": "",
+ "value": "10"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "1769:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "1769:3:23"
+ },
+ "nativeSrc": "1769:14:23",
+ "nodeType": "YulFunctionCall",
+ "src": "1769:14:23"
+ },
+ {
+ "name": "HEX_DIGITS",
+ "nativeSrc": "1785:10:23",
+ "nodeType": "YulIdentifier",
+ "src": "1785:10:23"
+ }
+ ],
+ "functionName": {
+ "name": "byte",
+ "nativeSrc": "1764:4:23",
+ "nodeType": "YulIdentifier",
+ "src": "1764:4:23"
+ },
+ "nativeSrc": "1764:32:23",
+ "nodeType": "YulFunctionCall",
+ "src": "1764:32:23"
+ }
+ ],
+ "functionName": {
+ "name": "mstore8",
+ "nativeSrc": "1751:7:23",
+ "nodeType": "YulIdentifier",
+ "src": "1751:7:23"
+ },
+ "nativeSrc": "1751:46:23",
+ "nodeType": "YulFunctionCall",
+ "src": "1751:46:23"
+ },
+ "nativeSrc": "1751:46:23",
+ "nodeType": "YulExpressionStatement",
+ "src": "1751:46:23"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 6881,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1785:10:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6958,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1759:3:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 6936,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1773:5:23",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 6965,
+ "nodeType": "InlineAssembly",
+ "src": "1704:111:23"
+ },
+ {
+ "expression": {
+ "id": 6968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 6966,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6936,
+ "src": "1832:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "/=",
+ "rightHandSide": {
+ "hexValue": "3130",
+ "id": 6967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1841:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "src": "1832:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 6969,
+ "nodeType": "ExpressionStatement",
+ "src": "1832:11:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 6972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6970,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6936,
+ "src": "1865:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1874:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1865:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 6974,
+ "nodeType": "IfStatement",
+ "src": "1861:21:23",
+ "trueBody": {
+ "id": 6973,
+ "nodeType": "Break",
+ "src": "1877:5:23"
+ }
+ }
+ ]
+ },
+ "condition": {
+ "hexValue": "74727565",
+ "id": 6961,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1657:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "id": 6976,
+ "nodeType": "WhileStatement",
+ "src": "1650:247:23"
+ },
+ {
+ "expression": {
+ "id": 6977,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6951,
+ "src": "1917:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 6940,
+ "id": 6978,
+ "nodeType": "Return",
+ "src": "1910:13:23"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6934,
+ "nodeType": "StructuredDocumentation",
+ "src": "1213:90:23",
+ "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation."
+ },
+ "id": 6981,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toString",
+ "nameLocation": "1317:8:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6937,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6936,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1334:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 6981,
+ "src": "1326:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6935,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1326:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1325:15:23"
+ },
+ "returnParameters": {
+ "id": 6940,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6939,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 6981,
+ "src": "1364:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6938,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1364:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1363:15:23"
+ },
+ "scope": 8269,
+ "src": "1308:632:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7006,
+ "nodeType": "Block",
+ "src": "2116:92:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 6994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 6992,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6984,
+ "src": "2147:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 6993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2155:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "2147:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "hexValue": "",
+ "id": 6996,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2165:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "typeString": "literal_string \"\""
+ },
+ "value": ""
+ },
+ "id": 6997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "2147:20:23",
+ "trueExpression": {
+ "hexValue": "2d",
+ "id": 6995,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2159:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
+ "typeString": "literal_string \"-\""
+ },
+ "value": "-"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7001,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6984,
+ "src": "2193:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "expression": {
+ "id": 6999,
+ "name": "SignedMath",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12269,
+ "src": "2178:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SignedMath_$12269_$",
+ "typeString": "type(library SignedMath)"
+ }
+ },
+ "id": 7000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2189:3:23",
+ "memberName": "abs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12268,
+ "src": "2178:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
+ "typeString": "function (int256) pure returns (uint256)"
+ }
+ },
+ "id": 7002,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2178:21:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 6998,
+ "name": "toString",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6981,
+ "src": "2169:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (string memory)"
+ }
+ },
+ "id": 7003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2169:31:23",
+ "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": 6990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2133:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_string_storage_ptr_$",
+ "typeString": "type(string storage pointer)"
+ },
+ "typeName": {
+ "id": 6989,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2133:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 6991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2140:6:23",
+ "memberName": "concat",
+ "nodeType": "MemberAccess",
+ "src": "2133:13:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () pure returns (string memory)"
+ }
+ },
+ "id": 7004,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2133:68:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 6988,
+ "id": 7005,
+ "nodeType": "Return",
+ "src": "2126:75:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 6982,
+ "nodeType": "StructuredDocumentation",
+ "src": "1946:89:23",
+ "text": " @dev Converts a `int256` to its ASCII `string` decimal representation."
+ },
+ "id": 7007,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toStringSigned",
+ "nameLocation": "2049:14:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 6985,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6984,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2071:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7007,
+ "src": "2064:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 6983,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2064:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2063:14:23"
+ },
+ "returnParameters": {
+ "id": 6988,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 6987,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7007,
+ "src": "2101:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6986,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2101:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2100:15:23"
+ },
+ "scope": 8269,
+ "src": "2040:168:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7026,
+ "nodeType": "Block",
+ "src": "2387:100:23",
+ "statements": [
+ {
+ "id": 7025,
+ "nodeType": "UncheckedBlock",
+ "src": "2397:84:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7016,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7010,
+ "src": "2440:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 7019,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7010,
+ "src": "2459:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 7017,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "2447:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 7018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2452:6:23",
+ "memberName": "log256",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 10303,
+ "src": "2447:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 7020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2447:18:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2468:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "2447:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7015,
+ "name": "toHexString",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7027,
+ 7110,
+ 7130
+ ],
+ "referencedDeclaration": 7110,
+ "src": "2428:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (uint256,uint256) pure returns (string memory)"
+ }
+ },
+ "id": 7023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2428:42:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 7014,
+ "id": 7024,
+ "nodeType": "Return",
+ "src": "2421:49:23"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7008,
+ "nodeType": "StructuredDocumentation",
+ "src": "2214:94:23",
+ "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."
+ },
+ "id": 7027,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toHexString",
+ "nameLocation": "2322:11:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7011,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7010,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2342:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7027,
+ "src": "2334:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7009,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2334:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2333:15:23"
+ },
+ "returnParameters": {
+ "id": 7014,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7013,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7027,
+ "src": "2372:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7012,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2372:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2371:15:23"
+ },
+ "scope": 8269,
+ "src": "2313:174:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7109,
+ "nodeType": "Block",
+ "src": "2700:435:23",
+ "statements": [
+ {
+ "assignments": [
+ 7038
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7038,
+ "mutability": "mutable",
+ "name": "localValue",
+ "nameLocation": "2718:10:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7109,
+ "src": "2710:18:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7037,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2710:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7040,
+ "initialValue": {
+ "id": 7039,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7030,
+ "src": "2731:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2710:26:23"
+ },
+ {
+ "assignments": [
+ 7042
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7042,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "2759:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7109,
+ "src": "2746:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 7041,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2746:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7051,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7047,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 7045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2778:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 7046,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7032,
+ "src": "2782:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2778:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 7048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2791:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "2778:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "2768:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ },
+ "typeName": {
+ "id": 7043,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2772:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ }
+ },
+ "id": 7050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2768:25:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2746:47:23"
+ },
+ {
+ "expression": {
+ "id": 7056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 7052,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7042,
+ "src": "2803:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7054,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 7053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2810:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2803:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 7055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2815:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
+ "typeString": "literal_string \"0\""
+ },
+ "value": "0"
+ },
+ "src": "2803:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 7057,
+ "nodeType": "ExpressionStatement",
+ "src": "2803:15:23"
+ },
+ {
+ "expression": {
+ "id": 7062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 7058,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7042,
+ "src": "2828:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7060,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 7059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2835:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2828:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "78",
+ "id": 7061,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2840:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83",
+ "typeString": "literal_string \"x\""
+ },
+ "value": "x"
+ },
+ "src": "2828:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 7063,
+ "nodeType": "ExpressionStatement",
+ "src": "2828:15:23"
+ },
+ {
+ "body": {
+ "id": 7092,
+ "nodeType": "Block",
+ "src": "2898:95:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 7086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 7078,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7042,
+ "src": "2912:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7080,
+ "indexExpression": {
+ "id": 7079,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7065,
+ "src": "2919:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2912:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 7081,
+ "name": "HEX_DIGITS",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6881,
+ "src": "2924:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes16",
+ "typeString": "bytes16"
+ }
+ },
+ "id": 7085,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7082,
+ "name": "localValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7038,
+ "src": "2935:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307866",
+ "id": 7083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2948:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15_by_1",
+ "typeString": "int_const 15"
+ },
+ "value": "0xf"
+ },
+ "src": "2935:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "2924:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "src": "2912:40:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 7087,
+ "nodeType": "ExpressionStatement",
+ "src": "2912:40:23"
+ },
+ {
+ "expression": {
+ "id": 7090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7088,
+ "name": "localValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7038,
+ "src": "2966:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "34",
+ "id": 7089,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2981:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "2966:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7091,
+ "nodeType": "ExpressionStatement",
+ "src": "2966:16:23"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7072,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7065,
+ "src": "2886:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2890:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "2886:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7093,
+ "initializationExpression": {
+ "assignments": [
+ 7065
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7065,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "2866:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7093,
+ "src": "2858:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7064,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2858:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7071,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 7066,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2870:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 7067,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7032,
+ "src": "2874:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2870:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2883:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "2870:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2858:26:23"
+ },
+ "isSimpleCounterLoop": false,
+ "loopExpression": {
+ "expression": {
+ "id": 7076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "--",
+ "prefix": true,
+ "src": "2893:3:23",
+ "subExpression": {
+ "id": 7075,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7065,
+ "src": "2895:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7077,
+ "nodeType": "ExpressionStatement",
+ "src": "2893:3:23"
+ },
+ "nodeType": "ForStatement",
+ "src": "2853:140:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7096,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7094,
+ "name": "localValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7038,
+ "src": "3006:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 7095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3020:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3006:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7103,
+ "nodeType": "IfStatement",
+ "src": "3002:96:23",
+ "trueBody": {
+ "id": 7102,
+ "nodeType": "Block",
+ "src": "3023:75:23",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 7098,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7030,
+ "src": "3073:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7099,
+ "name": "length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7032,
+ "src": "3080:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7097,
+ "name": "StringsInsufficientHexLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6927,
+ "src": "3044:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 7100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3044:43:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 7101,
+ "nodeType": "RevertStatement",
+ "src": "3037:50:23"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7106,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7042,
+ "src": "3121:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 7105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3114:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_string_storage_ptr_$",
+ "typeString": "type(string storage pointer)"
+ },
+ "typeName": {
+ "id": 7104,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3114:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3114:14:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 7036,
+ "id": 7108,
+ "nodeType": "Return",
+ "src": "3107:21:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7028,
+ "nodeType": "StructuredDocumentation",
+ "src": "2493:112:23",
+ "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."
+ },
+ "id": 7110,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toHexString",
+ "nameLocation": "2619:11:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7033,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7030,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2639:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7110,
+ "src": "2631:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7029,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2631:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7032,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "2654:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7110,
+ "src": "2646:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7031,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2646:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2630:31:23"
+ },
+ "returnParameters": {
+ "id": 7036,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7035,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7110,
+ "src": "2685:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7034,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2685:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2684:15:23"
+ },
+ "scope": 8269,
+ "src": "2610:525:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7129,
+ "nodeType": "Block",
+ "src": "3367:75:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7123,
+ "name": "addr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7113,
+ "src": "3412:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 7122,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3404:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 7121,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "3404:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3404:13:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 7120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3396:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 7119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3396:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3396:22:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7126,
+ "name": "ADDRESS_LENGTH",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6884,
+ "src": "3420:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ ],
+ "id": 7118,
+ "name": "toHexString",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7027,
+ 7110,
+ 7130
+ ],
+ "referencedDeclaration": 7110,
+ "src": "3384:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (uint256,uint256) pure returns (string memory)"
+ }
+ },
+ "id": 7127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3384:51:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 7117,
+ "id": 7128,
+ "nodeType": "Return",
+ "src": "3377:58:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7111,
+ "nodeType": "StructuredDocumentation",
+ "src": "3141:148:23",
+ "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."
+ },
+ "id": 7130,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toHexString",
+ "nameLocation": "3303:11:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7114,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7113,
+ "mutability": "mutable",
+ "name": "addr",
+ "nameLocation": "3323:4:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7130,
+ "src": "3315:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7112,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3315:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3314:14:23"
+ },
+ "returnParameters": {
+ "id": 7117,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7116,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7130,
+ "src": "3352:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7115,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3352:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3351:15:23"
+ },
+ "scope": 8269,
+ "src": "3294:148:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7194,
+ "nodeType": "Block",
+ "src": "3699:642:23",
+ "statements": [
+ {
+ "assignments": [
+ 7139
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7139,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "3722:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7194,
+ "src": "3709:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 7138,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3709:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7146,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7143,
+ "name": "addr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7133,
+ "src": "3749:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 7142,
+ "name": "toHexString",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7027,
+ 7110,
+ 7130
+ ],
+ "referencedDeclaration": 7130,
+ "src": "3737:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (address) pure returns (string memory)"
+ }
+ },
+ "id": 7144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3737:17:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7141,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3731:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7140,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3731:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3731:24:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3709:46:23"
+ },
+ {
+ "assignments": [
+ 7148
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7148,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "3848:9:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7194,
+ "src": "3840:17:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7147,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3840:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7149,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3840:17:23"
+ },
+ {
+ "AST": {
+ "nativeSrc": "3892:78:23",
+ "nodeType": "YulBlock",
+ "src": "3892:78:23",
+ "statements": [
+ {
+ "nativeSrc": "3906:54:23",
+ "nodeType": "YulAssignment",
+ "src": "3906:54:23",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3923:2:23",
+ "nodeType": "YulLiteral",
+ "src": "3923:2:23",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "buffer",
+ "nativeSrc": "3941:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "3941:6:23"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3949:4:23",
+ "nodeType": "YulLiteral",
+ "src": "3949:4:23",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3937:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "3937:3:23"
+ },
+ "nativeSrc": "3937:17:23",
+ "nodeType": "YulFunctionCall",
+ "src": "3937:17:23"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3956:2:23",
+ "nodeType": "YulLiteral",
+ "src": "3956:2:23",
+ "type": "",
+ "value": "40"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "3927:9:23",
+ "nodeType": "YulIdentifier",
+ "src": "3927:9:23"
+ },
+ "nativeSrc": "3927:32:23",
+ "nodeType": "YulFunctionCall",
+ "src": "3927:32:23"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nativeSrc": "3919:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "3919:3:23"
+ },
+ "nativeSrc": "3919:41:23",
+ "nodeType": "YulFunctionCall",
+ "src": "3919:41:23"
+ },
+ "variableNames": [
+ {
+ "name": "hashValue",
+ "nativeSrc": "3906:9:23",
+ "nodeType": "YulIdentifier",
+ "src": "3906:9:23"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 7139,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3941:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 7148,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3906:9:23",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 7150,
+ "nodeType": "InlineAssembly",
+ "src": "3867:103:23"
+ },
+ {
+ "body": {
+ "id": 7187,
+ "nodeType": "Block",
+ "src": "4013:291:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7165,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7161,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7148,
+ "src": "4119:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "hexValue": "307866",
+ "id": 7162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4131:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15_by_1",
+ "typeString": "int_const 15"
+ },
+ "value": "0xf"
+ },
+ "src": "4119:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "37",
+ "id": 7164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4137:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "src": "4119:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 7173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 7168,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7139,
+ "src": "4148:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7170,
+ "indexExpression": {
+ "id": 7169,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7152,
+ "src": "4155:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4148:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 7167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4142:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 7166,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "4142:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4142:16:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "3936",
+ "id": 7172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4161:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ "value": "96"
+ },
+ "src": "4142:21:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4119:44:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7182,
+ "nodeType": "IfStatement",
+ "src": "4115:150:23",
+ "trueBody": {
+ "id": 7181,
+ "nodeType": "Block",
+ "src": "4165:100:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 7179,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 7175,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7139,
+ "src": "4233:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7177,
+ "indexExpression": {
+ "id": 7176,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7152,
+ "src": "4240:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "4233:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "^=",
+ "rightHandSide": {
+ "hexValue": "30783230",
+ "id": 7178,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4246:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "0x20"
+ },
+ "src": "4233:17:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 7180,
+ "nodeType": "ExpressionStatement",
+ "src": "4233:17:23"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 7185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7183,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7148,
+ "src": "4278:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "34",
+ "id": 7184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4292:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "4278:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7186,
+ "nodeType": "ExpressionStatement",
+ "src": "4278:15:23"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7155,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7152,
+ "src": "4001:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4005:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4001:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7188,
+ "initializationExpression": {
+ "assignments": [
+ 7152
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7152,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "3993:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7188,
+ "src": "3985:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3985:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7154,
+ "initialValue": {
+ "hexValue": "3431",
+ "id": 7153,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3997:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_41_by_1",
+ "typeString": "int_const 41"
+ },
+ "value": "41"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3985:14:23"
+ },
+ "isSimpleCounterLoop": false,
+ "loopExpression": {
+ "expression": {
+ "id": 7159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "--",
+ "prefix": true,
+ "src": "4008:3:23",
+ "subExpression": {
+ "id": 7158,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7152,
+ "src": "4010:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7160,
+ "nodeType": "ExpressionStatement",
+ "src": "4008:3:23"
+ },
+ "nodeType": "ForStatement",
+ "src": "3980:324:23"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7191,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7139,
+ "src": "4327:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 7190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4320:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_string_storage_ptr_$",
+ "typeString": "type(string storage pointer)"
+ },
+ "typeName": {
+ "id": 7189,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4320:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7192,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4320:14:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 7137,
+ "id": 7193,
+ "nodeType": "Return",
+ "src": "4313:21:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7131,
+ "nodeType": "StructuredDocumentation",
+ "src": "3448:165:23",
+ "text": " @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n representation, according to EIP-55."
+ },
+ "id": 7195,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toChecksumHexString",
+ "nameLocation": "3627:19:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7134,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7133,
+ "mutability": "mutable",
+ "name": "addr",
+ "nameLocation": "3655:4:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7195,
+ "src": "3647:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7132,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3647:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3646:14:23"
+ },
+ "returnParameters": {
+ "id": 7137,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7136,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7195,
+ "src": "3684:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7135,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3684:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3683:15:23"
+ },
+ "scope": 8269,
+ "src": "3618:723:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7231,
+ "nodeType": "Block",
+ "src": "4496:104:23",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7207,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7198,
+ "src": "4519:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7206,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4513:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7205,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4513:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4513:8:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4522:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4513:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7212,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7200,
+ "src": "4538:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4532:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7210,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4532:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4532:8:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4541:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4532:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4513:34:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 7228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7219,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7198,
+ "src": "4567:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7218,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4561:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7217,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4561:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4561:8:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 7216,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "4551:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 7221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4551:19:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7225,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7200,
+ "src": "4590:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4584:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7223,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4584:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4584:8:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 7222,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "4574:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 7227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4574:19:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4551:42:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "4513:80:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 7204,
+ "id": 7230,
+ "nodeType": "Return",
+ "src": "4506:87:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7196,
+ "nodeType": "StructuredDocumentation",
+ "src": "4347:66:23",
+ "text": " @dev Returns true if the two strings are equal."
+ },
+ "id": 7232,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "equal",
+ "nameLocation": "4427:5:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7201,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7198,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "4447:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7232,
+ "src": "4433:15:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7197,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4433:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7200,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "4464:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7232,
+ "src": "4450:15:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7199,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4450:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4432:34:23"
+ },
+ "returnParameters": {
+ "id": 7204,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7203,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7232,
+ "src": "4490:4:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7202,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4490:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4489:6:23"
+ },
+ "scope": 8269,
+ "src": "4418:182:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7250,
+ "nodeType": "Block",
+ "src": "4897:64:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7241,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7235,
+ "src": "4924:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4931:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7245,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7235,
+ "src": "4940:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7244,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4934:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7243,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4934:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7246,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4934:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4947:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4934:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7240,
+ "name": "parseUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7251,
+ 7282
+ ],
+ "referencedDeclaration": 7282,
+ "src": "4914:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 7248,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4914:40:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 7239,
+ "id": 7249,
+ "nodeType": "Return",
+ "src": "4907:47:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7233,
+ "nodeType": "StructuredDocumentation",
+ "src": "4606:214:23",
+ "text": " @dev Parse a decimal string and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type"
+ },
+ "id": 7251,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseUint",
+ "nameLocation": "4834:9:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7236,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7235,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "4858:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7251,
+ "src": "4844:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7234,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4844:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4843:21:23"
+ },
+ "returnParameters": {
+ "id": 7239,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7238,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7251,
+ "src": "4888:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7237,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4888:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4887:9:23"
+ },
+ "scope": 8269,
+ "src": "4825:136:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7281,
+ "nodeType": "Block",
+ "src": "5366:153:23",
+ "statements": [
+ {
+ "assignments": [
+ 7264,
+ 7266
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7264,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "5382:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7281,
+ "src": "5377:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7263,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5377:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7266,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5399:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7281,
+ "src": "5391:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7265,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5391:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7272,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7268,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7254,
+ "src": "5421:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7269,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7256,
+ "src": "5428:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7270,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7258,
+ "src": "5435:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7267,
+ "name": "tryParseUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7303,
+ 7340
+ ],
+ "referencedDeclaration": 7340,
+ "src": "5408:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5408:31:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5376:63:23"
+ },
+ {
+ "condition": {
+ "id": 7274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "5453:8:23",
+ "subExpression": {
+ "id": 7273,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7264,
+ "src": "5454:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7278,
+ "nodeType": "IfStatement",
+ "src": "5449:41:23",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 7275,
+ "name": "StringsInvalidChar",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6930,
+ "src": "5470:18:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 7276,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5470:20:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 7277,
+ "nodeType": "RevertStatement",
+ "src": "5463:27:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7279,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7266,
+ "src": "5507:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 7262,
+ "id": 7280,
+ "nodeType": "Return",
+ "src": "5500:12:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7252,
+ "nodeType": "StructuredDocumentation",
+ "src": "4967:294:23",
+ "text": " @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type"
+ },
+ "id": 7282,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseUint",
+ "nameLocation": "5275:9:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7259,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7254,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "5299:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7282,
+ "src": "5285:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7253,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "5285:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7256,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "5314:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7282,
+ "src": "5306:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7255,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5306:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7258,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "5329:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7282,
+ "src": "5321:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7257,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5321:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5284:49:23"
+ },
+ "returnParameters": {
+ "id": 7262,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7261,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7282,
+ "src": "5357:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7260,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5357:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5356:9:23"
+ },
+ "scope": 8269,
+ "src": "5266:253:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7302,
+ "nodeType": "Block",
+ "src": "5840:83:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7293,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7285,
+ "src": "5886:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7294,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5893:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7297,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7285,
+ "src": "5902:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5896:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7295,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "5896:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5896:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5909:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5896:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7292,
+ "name": "_tryParseUintUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7410,
+ "src": "5857:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5857:59:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7291,
+ "id": 7301,
+ "nodeType": "Return",
+ "src": "5850:66:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7283,
+ "nodeType": "StructuredDocumentation",
+ "src": "5525:215:23",
+ "text": " @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`."
+ },
+ "id": 7303,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseUint",
+ "nameLocation": "5754:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7286,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7285,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "5781:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7303,
+ "src": "5767:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7284,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "5767:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5766:21:23"
+ },
+ "returnParameters": {
+ "id": 7291,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7288,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "5816:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7303,
+ "src": "5811:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7287,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5811:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7290,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5833:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7303,
+ "src": "5825:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7289,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5825:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5810:29:23"
+ },
+ "scope": 8269,
+ "src": "5745:178:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7339,
+ "nodeType": "Block",
+ "src": "6325:144:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7327,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7317,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7310,
+ "src": "6339:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7320,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7306,
+ "src": "6351:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7319,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6345:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7318,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "6345:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7321,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6345:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7322,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6358:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6345:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6339:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7324,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7308,
+ "src": "6368:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 7325,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7310,
+ "src": "6376:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6368:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6339:40:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7332,
+ "nodeType": "IfStatement",
+ "src": "6335:63:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7328,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6389:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6396:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7330,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6388:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7316,
+ "id": 7331,
+ "nodeType": "Return",
+ "src": "6381:17:23"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7334,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7306,
+ "src": "6444:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7335,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7308,
+ "src": "6451:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7336,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7310,
+ "src": "6458:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7333,
+ "name": "_tryParseUintUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7410,
+ "src": "6415:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6415:47:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7316,
+ "id": 7338,
+ "nodeType": "Return",
+ "src": "6408:54:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7304,
+ "nodeType": "StructuredDocumentation",
+ "src": "5929:238:23",
+ "text": " @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character.\n NOTE: This function will revert if the result does not fit in a `uint256`."
+ },
+ "id": 7340,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseUint",
+ "nameLocation": "6181:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7311,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7306,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "6217:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7340,
+ "src": "6203:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7305,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "6203:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7308,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "6240:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7340,
+ "src": "6232:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7307,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6232:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7310,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "6263:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7340,
+ "src": "6255:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7309,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6255:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6193:79:23"
+ },
+ "returnParameters": {
+ "id": 7316,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7313,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "6301:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7340,
+ "src": "6296:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7312,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6296:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7315,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6318:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7340,
+ "src": "6310:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7314,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6310:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6295:29:23"
+ },
+ "scope": 8269,
+ "src": "6172:297:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7409,
+ "nodeType": "Block",
+ "src": "6872:347:23",
+ "statements": [
+ {
+ "assignments": [
+ 7355
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7355,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "6895:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7409,
+ "src": "6882:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 7354,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "6882:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7360,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7358,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7343,
+ "src": "6910:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6904:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7356,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "6904:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7359,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6904:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6882:34:23"
+ },
+ {
+ "assignments": [
+ 7362
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7362,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "6935:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7409,
+ "src": "6927:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7361,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6927:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7364,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 7363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6944:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6927:18:23"
+ },
+ {
+ "body": {
+ "id": 7403,
+ "nodeType": "Block",
+ "src": "6993:189:23",
+ "statements": [
+ {
+ "assignments": [
+ 7376
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7376,
+ "mutability": "mutable",
+ "name": "chr",
+ "nameLocation": "7013:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7403,
+ "src": "7007:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 7375,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "7007:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7386,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7381,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7355,
+ "src": "7062:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 7382,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7366,
+ "src": "7070:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7380,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "7039:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 7383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7039:33:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 7379,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7032:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7378,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "7032:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7032:41:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 7377,
+ "name": "_tryParseChr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8090,
+ "src": "7019:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$",
+ "typeString": "function (bytes1) pure returns (uint8)"
+ }
+ },
+ "id": 7385,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7019:55:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7007:67:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 7389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7387,
+ "name": "chr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7376,
+ "src": "7092:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "39",
+ "id": 7388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7098:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9_by_1",
+ "typeString": "int_const 9"
+ },
+ "value": "9"
+ },
+ "src": "7092:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7394,
+ "nodeType": "IfStatement",
+ "src": "7088:30:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7390,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7109:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7116:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7392,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "7108:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7353,
+ "id": 7393,
+ "nodeType": "Return",
+ "src": "7101:17:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7397,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7395,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7362,
+ "src": "7132:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "hexValue": "3130",
+ "id": 7396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7142:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "src": "7132:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7398,
+ "nodeType": "ExpressionStatement",
+ "src": "7132:12:23"
+ },
+ {
+ "expression": {
+ "id": 7401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7399,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7362,
+ "src": "7158:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 7400,
+ "name": "chr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7376,
+ "src": "7168:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "7158:13:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7402,
+ "nodeType": "ExpressionStatement",
+ "src": "7158:13:23"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7369,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7366,
+ "src": "6979:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 7370,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7347,
+ "src": "6983:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6979:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7404,
+ "initializationExpression": {
+ "assignments": [
+ 7366
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7366,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "6968:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7404,
+ "src": "6960:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7365,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6960:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7368,
+ "initialValue": {
+ "id": 7367,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7345,
+ "src": "6972:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6960:17:23"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 7373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "6988:3:23",
+ "subExpression": {
+ "id": 7372,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7366,
+ "src": "6990:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7374,
+ "nodeType": "ExpressionStatement",
+ "src": "6988:3:23"
+ },
+ "nodeType": "ForStatement",
+ "src": "6955:227:23"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "74727565",
+ "id": 7405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7199:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ {
+ "id": 7406,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7362,
+ "src": "7205:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 7407,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "7198:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7353,
+ "id": 7408,
+ "nodeType": "Return",
+ "src": "7191:21:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7341,
+ "nodeType": "StructuredDocumentation",
+ "src": "6475:224:23",
+ "text": " @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior."
+ },
+ "id": 7410,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_tryParseUintUncheckedBounds",
+ "nameLocation": "6713:28:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7348,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7343,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "6765:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7410,
+ "src": "6751:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7342,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "6751:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7345,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "6788:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7410,
+ "src": "6780:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7344,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6780:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7347,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "6811:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7410,
+ "src": "6803:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7346,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6803:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6741:79:23"
+ },
+ "returnParameters": {
+ "id": 7353,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7350,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "6848:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7410,
+ "src": "6843:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7349,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6843:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7352,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6865:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7410,
+ "src": "6857:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7351,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6857:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6842:29:23"
+ },
+ "scope": 8269,
+ "src": "6704:515:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 7428,
+ "nodeType": "Block",
+ "src": "7516:63:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7419,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7413,
+ "src": "7542:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7549:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7423,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7413,
+ "src": "7558:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7422,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7552:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7421,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7552:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7552:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7565:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "7552:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7418,
+ "name": "parseInt",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7429,
+ 7460
+ ],
+ "referencedDeclaration": 7460,
+ "src": "7533:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_int256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (int256)"
+ }
+ },
+ "id": 7426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7533:39:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 7417,
+ "id": 7427,
+ "nodeType": "Return",
+ "src": "7526:46:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7411,
+ "nodeType": "StructuredDocumentation",
+ "src": "7225:216:23",
+ "text": " @dev Parse a decimal string and returns the value as a `int256`.\n Requirements:\n - The string must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type."
+ },
+ "id": 7429,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseInt",
+ "nameLocation": "7455:8:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7414,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7413,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "7478:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7429,
+ "src": "7464:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7412,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7464:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7463:21:23"
+ },
+ "returnParameters": {
+ "id": 7417,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7416,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7429,
+ "src": "7508:6:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7415,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7508:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7507:8:23"
+ },
+ "scope": 8269,
+ "src": "7446:133:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7459,
+ "nodeType": "Block",
+ "src": "7984:151:23",
+ "statements": [
+ {
+ "assignments": [
+ 7442,
+ 7444
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7442,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "8000:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7459,
+ "src": "7995:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7441,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7995:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7444,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8016:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7459,
+ "src": "8009:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7443,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8009:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7450,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7446,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7432,
+ "src": "8037:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7447,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7434,
+ "src": "8044:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7448,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7436,
+ "src": "8051:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7445,
+ "name": "tryParseInt",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7481,
+ 7523
+ ],
+ "referencedDeclaration": 7523,
+ "src": "8025:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)"
+ }
+ },
+ "id": 7449,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8025:30:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
+ "typeString": "tuple(bool,int256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7994:61:23"
+ },
+ {
+ "condition": {
+ "id": 7452,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "8069:8:23",
+ "subExpression": {
+ "id": 7451,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7442,
+ "src": "8070:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7456,
+ "nodeType": "IfStatement",
+ "src": "8065:41:23",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 7453,
+ "name": "StringsInvalidChar",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6930,
+ "src": "8086:18:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 7454,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8086:20:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 7455,
+ "nodeType": "RevertStatement",
+ "src": "8079:27:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7457,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7444,
+ "src": "8123:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 7440,
+ "id": 7458,
+ "nodeType": "Return",
+ "src": "8116:12:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7430,
+ "nodeType": "StructuredDocumentation",
+ "src": "7585:296:23",
+ "text": " @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type."
+ },
+ "id": 7460,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseInt",
+ "nameLocation": "7895:8:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7437,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7432,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "7918:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7460,
+ "src": "7904:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7431,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7904:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7434,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "7933:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7460,
+ "src": "7925:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7433,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7925:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7436,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "7948:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7460,
+ "src": "7940:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7435,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7940:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7903:49:23"
+ },
+ "returnParameters": {
+ "id": 7440,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7439,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7460,
+ "src": "7976:6:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7438,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7976:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7975:8:23"
+ },
+ "scope": 8269,
+ "src": "7886:249:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7480,
+ "nodeType": "Block",
+ "src": "8526:82:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7471,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7463,
+ "src": "8571:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8578:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7475,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7463,
+ "src": "8587:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8581:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7473,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "8581:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8581:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8594:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "8581:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7470,
+ "name": "_tryParseIntUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7644,
+ "src": "8543:27:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)"
+ }
+ },
+ "id": 7478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8543:58:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
+ "typeString": "tuple(bool,int256)"
+ }
+ },
+ "functionReturnParameters": 7469,
+ "id": 7479,
+ "nodeType": "Return",
+ "src": "8536:65:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7461,
+ "nodeType": "StructuredDocumentation",
+ "src": "8141:287:23",
+ "text": " @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`."
+ },
+ "id": 7481,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseInt",
+ "nameLocation": "8442:11:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7463,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "8468:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7481,
+ "src": "8454:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7462,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "8454:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8453:21:23"
+ },
+ "returnParameters": {
+ "id": 7469,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7466,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "8503:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7481,
+ "src": "8498:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7465,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "8498:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7468,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8519:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7481,
+ "src": "8512:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7467,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8512:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8497:28:23"
+ },
+ "scope": 8269,
+ "src": "8433:175:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 7486,
+ "mutability": "constant",
+ "name": "ABS_MIN_INT256",
+ "nameLocation": "8639:14:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8269,
+ "src": "8614:50:23",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7482,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8614:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
+ "typeString": "int_const 5789...(69 digits omitted)...9968"
+ },
+ "id": 7485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 7483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8656:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "323535",
+ "id": 7484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8661:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "255"
+ },
+ "src": "8656:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
+ "typeString": "int_const 5789...(69 digits omitted)...9968"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 7522,
+ "nodeType": "Block",
+ "src": "9130:143:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7500,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7493,
+ "src": "9144:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7503,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7489,
+ "src": "9156:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9150:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7501,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9150:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9150:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7505,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9163:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "9150:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9144:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7507,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7491,
+ "src": "9173:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 7508,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7493,
+ "src": "9181:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9173:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "9144:40:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7515,
+ "nodeType": "IfStatement",
+ "src": "9140:63:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7511,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9194:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7512,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9201:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7513,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9193:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7499,
+ "id": 7514,
+ "nodeType": "Return",
+ "src": "9186:17:23"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7517,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7489,
+ "src": "9248:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7518,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7491,
+ "src": "9255:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7519,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7493,
+ "src": "9262:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7516,
+ "name": "_tryParseIntUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7644,
+ "src": "9220:27:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)"
+ }
+ },
+ "id": 7520,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9220:46:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
+ "typeString": "tuple(bool,int256)"
+ }
+ },
+ "functionReturnParameters": 7499,
+ "id": 7521,
+ "nodeType": "Return",
+ "src": "9213:53:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7487,
+ "nodeType": "StructuredDocumentation",
+ "src": "8671:303:23",
+ "text": " @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character or if the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`."
+ },
+ "id": 7523,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseInt",
+ "nameLocation": "8988:11:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7489,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "9023:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7523,
+ "src": "9009:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7488,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "9009:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7491,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "9046:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7523,
+ "src": "9038:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7490,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9038:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7493,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "9069:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7523,
+ "src": "9061:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7492,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9061:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8999:79:23"
+ },
+ "returnParameters": {
+ "id": 7499,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7496,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "9107:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7523,
+ "src": "9102:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7495,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9102:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7498,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9123:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7523,
+ "src": "9116:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7497,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9116:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9101:28:23"
+ },
+ "scope": 8269,
+ "src": "8979:294:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7643,
+ "nodeType": "Block",
+ "src": "9673:812:23",
+ "statements": [
+ {
+ "assignments": [
+ 7538
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7538,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "9696:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "9683:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 7537,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9683:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7543,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7541,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7526,
+ "src": "9711:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7540,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9705:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7539,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9705:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9705:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9683:34:23"
+ },
+ {
+ "assignments": [
+ 7545
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7545,
+ "mutability": "mutable",
+ "name": "sign",
+ "nameLocation": "9781:4:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "9774:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "typeName": {
+ "id": 7544,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "9774:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7561,
+ "initialValue": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7548,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7546,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7528,
+ "src": "9788:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 7547,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7530,
+ "src": "9797:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9788:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7556,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7538,
+ "src": "9845:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 7557,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7528,
+ "src": "9853:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7555,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "9822:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 7558,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9822:37:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 7554,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9815:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7553,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "9815:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9815:45:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 7560,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "9788:72:23",
+ "trueExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 7551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9810: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": 7550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9803:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7549,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "9803:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7552,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9803:9:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9774:86:23"
+ },
+ {
+ "assignments": [
+ 7563
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7563,
+ "mutability": "mutable",
+ "name": "positiveSign",
+ "nameLocation": "9946:12:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "9941:17:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7562,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9941:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7570,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 7569,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7564,
+ "name": "sign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7545,
+ "src": "9961:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "2b",
+ "id": 7567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9976:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8",
+ "typeString": "literal_string \"+\""
+ },
+ "value": "+"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8",
+ "typeString": "literal_string \"+\""
+ }
+ ],
+ "id": 7566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9969:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7565,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "9969:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7568,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9969:11:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "src": "9961:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9941:39:23"
+ },
+ {
+ "assignments": [
+ 7572
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7572,
+ "mutability": "mutable",
+ "name": "negativeSign",
+ "nameLocation": "9995:12:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "9990:17:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7571,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9990:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7579,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 7578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7573,
+ "name": "sign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7545,
+ "src": "10010:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "2d",
+ "id": 7576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10025:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
+ "typeString": "literal_string \"-\""
+ },
+ "value": "-"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
+ "typeString": "literal_string \"-\""
+ }
+ ],
+ "id": 7575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10018:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7574,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "10018:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10018:11:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "src": "10010:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9990:39:23"
+ },
+ {
+ "assignments": [
+ 7581
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7581,
+ "mutability": "mutable",
+ "name": "offset",
+ "nameLocation": "10047:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "10039:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7580,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10039:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7588,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7584,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7582,
+ "name": "positiveSign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7563,
+ "src": "10057:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "id": 7583,
+ "name": "negativeSign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7572,
+ "src": "10073:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "10057:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 7585,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10056:30:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7586,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10087:6:23",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "10056:37:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 7587,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10056:39:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10039:56:23"
+ },
+ {
+ "assignments": [
+ 7590,
+ 7592
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7590,
+ "mutability": "mutable",
+ "name": "absSuccess",
+ "nameLocation": "10112:10:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "10107:15:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7589,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "10107:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7592,
+ "mutability": "mutable",
+ "name": "absValue",
+ "nameLocation": "10132:8:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7643,
+ "src": "10124:16:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7591,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10124:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7600,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7594,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7526,
+ "src": "10157:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7595,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7528,
+ "src": "10164:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 7596,
+ "name": "offset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7581,
+ "src": "10172:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10164:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7598,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7530,
+ "src": "10180:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7593,
+ "name": "tryParseUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7303,
+ 7340
+ ],
+ "referencedDeclaration": 7340,
+ "src": "10144:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10144:40:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10106:78:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7605,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7601,
+ "name": "absSuccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7590,
+ "src": "10199:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7604,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7602,
+ "name": "absValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7592,
+ "src": "10213:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 7603,
+ "name": "ABS_MIN_INT256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7486,
+ "src": "10224:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10213:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "10199:39:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7627,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7621,
+ "name": "absSuccess",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7590,
+ "src": "10341:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "id": 7622,
+ "name": "negativeSign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7572,
+ "src": "10355:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "10341:26:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7624,
+ "name": "absValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7592,
+ "src": "10371:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 7625,
+ "name": "ABS_MIN_INT256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7486,
+ "src": "10383:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10371:26:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "10341:56:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10469:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10476:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7639,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10468:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7536,
+ "id": 7640,
+ "nodeType": "Return",
+ "src": "10461:17:23"
+ },
+ "id": 7641,
+ "nodeType": "IfStatement",
+ "src": "10337:141:23",
+ "trueBody": {
+ "id": 7636,
+ "nodeType": "Block",
+ "src": "10399:56:23",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "74727565",
+ "id": 7628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10421:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7631,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10432:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 7630,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10432:6:23",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ }
+ ],
+ "id": 7629,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10427:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 7632,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10427:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_int256",
+ "typeString": "type(int256)"
+ }
+ },
+ "id": 7633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10440:3:23",
+ "memberName": "min",
+ "nodeType": "MemberAccess",
+ "src": "10427:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 7634,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10420:24:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
+ "typeString": "tuple(bool,int256)"
+ }
+ },
+ "functionReturnParameters": 7536,
+ "id": 7635,
+ "nodeType": "Return",
+ "src": "10413:31:23"
+ }
+ ]
+ }
+ },
+ "id": 7642,
+ "nodeType": "IfStatement",
+ "src": "10195:283:23",
+ "trueBody": {
+ "id": 7620,
+ "nodeType": "Block",
+ "src": "10240:91:23",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "74727565",
+ "id": 7606,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10262:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ {
+ "condition": {
+ "id": 7607,
+ "name": "negativeSign",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7572,
+ "src": "10268:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "arguments": [
+ {
+ "id": 7615,
+ "name": "absValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7592,
+ "src": "10310:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7614,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10303:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 7613,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10303:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10303:16:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 7617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "10268:51:23",
+ "trueExpression": {
+ "id": 7612,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "-",
+ "prefix": true,
+ "src": "10283:17:23",
+ "subExpression": {
+ "arguments": [
+ {
+ "id": 7610,
+ "name": "absValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7592,
+ "src": "10291:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7609,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10284:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 7608,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10284:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7611,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10284:16:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 7618,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10261:59:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
+ "typeString": "tuple(bool,int256)"
+ }
+ },
+ "functionReturnParameters": 7536,
+ "id": 7619,
+ "nodeType": "Return",
+ "src": "10254:66:23"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7524,
+ "nodeType": "StructuredDocumentation",
+ "src": "9279:223:23",
+ "text": " @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior."
+ },
+ "id": 7644,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_tryParseIntUncheckedBounds",
+ "nameLocation": "9516:27:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7531,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7526,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "9567:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7644,
+ "src": "9553:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7525,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "9553:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7528,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "9590:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7644,
+ "src": "9582:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7527,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9582:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7530,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "9613:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7644,
+ "src": "9605:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7529,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9605:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9543:79:23"
+ },
+ "returnParameters": {
+ "id": 7536,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7533,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "9650:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7644,
+ "src": "9645:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7532,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9645:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7535,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9666:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7644,
+ "src": "9659:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 7534,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9659:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9644:28:23"
+ },
+ "scope": 8269,
+ "src": "9507:978:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 7662,
+ "nodeType": "Block",
+ "src": "10830:67:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7653,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7647,
+ "src": "10860:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7654,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10867:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7657,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7647,
+ "src": "10876:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7656,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10870:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7655,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "10870:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7658,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10870:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7659,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10883:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "10870:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7652,
+ "name": "parseHexUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7663,
+ 7694
+ ],
+ "referencedDeclaration": 7694,
+ "src": "10847:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 7660,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10847:43:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 7651,
+ "id": 7661,
+ "nodeType": "Return",
+ "src": "10840:50:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7645,
+ "nodeType": "StructuredDocumentation",
+ "src": "10491:259:23",
+ "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type."
+ },
+ "id": 7663,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseHexUint",
+ "nameLocation": "10764:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7648,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7647,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "10791:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7663,
+ "src": "10777:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7646,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "10777:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10776:21:23"
+ },
+ "returnParameters": {
+ "id": 7651,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7650,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7663,
+ "src": "10821:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7649,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10821:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10820:9:23"
+ },
+ "scope": 8269,
+ "src": "10755:142:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7693,
+ "nodeType": "Block",
+ "src": "11318:156:23",
+ "statements": [
+ {
+ "assignments": [
+ 7676,
+ 7678
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7676,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "11334:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7693,
+ "src": "11329:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7675,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "11329:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7678,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "11351:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7693,
+ "src": "11343:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7677,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11343:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7684,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7680,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7666,
+ "src": "11376:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7681,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7668,
+ "src": "11383:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7682,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7670,
+ "src": "11390:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7679,
+ "name": "tryParseHexUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7715,
+ 7752
+ ],
+ "referencedDeclaration": 7752,
+ "src": "11360:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7683,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11360:34:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11328:66:23"
+ },
+ {
+ "condition": {
+ "id": 7686,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "11408:8:23",
+ "subExpression": {
+ "id": 7685,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7676,
+ "src": "11409:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7690,
+ "nodeType": "IfStatement",
+ "src": "11404:41:23",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 7687,
+ "name": "StringsInvalidChar",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6930,
+ "src": "11425:18:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 7688,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11425:20:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 7689,
+ "nodeType": "RevertStatement",
+ "src": "11418:27:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7691,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7678,
+ "src": "11462:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 7674,
+ "id": 7692,
+ "nodeType": "Return",
+ "src": "11455:12:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7664,
+ "nodeType": "StructuredDocumentation",
+ "src": "10903:307:23",
+ "text": " @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type."
+ },
+ "id": 7694,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseHexUint",
+ "nameLocation": "11224:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7671,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7666,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "11251:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7694,
+ "src": "11237:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7665,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "11237:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7668,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "11266:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7694,
+ "src": "11258:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7667,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11258:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7670,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "11281:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7694,
+ "src": "11273:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11273:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11236:49:23"
+ },
+ "returnParameters": {
+ "id": 7674,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7673,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7694,
+ "src": "11309:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7672,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11309:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11308:9:23"
+ },
+ "scope": 8269,
+ "src": "11215:259:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7714,
+ "nodeType": "Block",
+ "src": "11801:86:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7705,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7697,
+ "src": "11850:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7706,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11857:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7709,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7697,
+ "src": "11866:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7708,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11860:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7707,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "11860:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11860:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11873:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "11860:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7704,
+ "name": "_tryParseHexUintUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7855,
+ "src": "11818:31:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7712,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11818:62:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7703,
+ "id": 7713,
+ "nodeType": "Return",
+ "src": "11811:69:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7695,
+ "nodeType": "StructuredDocumentation",
+ "src": "11480:218:23",
+ "text": " @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`."
+ },
+ "id": 7715,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseHexUint",
+ "nameLocation": "11712:15:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7698,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7697,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "11742:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7715,
+ "src": "11728:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7696,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "11728:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11727:21:23"
+ },
+ "returnParameters": {
+ "id": 7703,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7700,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "11777:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7715,
+ "src": "11772:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7699,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "11772:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7702,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "11794:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7715,
+ "src": "11786:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7701,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11786:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11771:29:23"
+ },
+ "scope": 8269,
+ "src": "11703:184:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7751,
+ "nodeType": "Block",
+ "src": "12295:147:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7729,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7722,
+ "src": "12309:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7732,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7718,
+ "src": "12321:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7731,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12315:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7730,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12315:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7733,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12315:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12328:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12315:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12309:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7738,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7736,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7720,
+ "src": "12338:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 7737,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7722,
+ "src": "12346:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12338:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "12309:40:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7744,
+ "nodeType": "IfStatement",
+ "src": "12305:63:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12359:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12366:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7742,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "12358:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7728,
+ "id": 7743,
+ "nodeType": "Return",
+ "src": "12351:17:23"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7746,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7718,
+ "src": "12417:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7747,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7720,
+ "src": "12424:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7748,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7722,
+ "src": "12431:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7745,
+ "name": "_tryParseHexUintUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7855,
+ "src": "12385:31:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 7749,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12385:50:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7728,
+ "id": 7750,
+ "nodeType": "Return",
+ "src": "12378:57:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7716,
+ "nodeType": "StructuredDocumentation",
+ "src": "11893:241:23",
+ "text": " @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`."
+ },
+ "id": 7752,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseHexUint",
+ "nameLocation": "12148:15:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7723,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7718,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "12187:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7752,
+ "src": "12173:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7717,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "12173:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7720,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "12210:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7752,
+ "src": "12202:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7719,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12202:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7722,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "12233:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7752,
+ "src": "12225:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7721,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12225:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12163:79:23"
+ },
+ "returnParameters": {
+ "id": 7728,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7725,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "12271:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7752,
+ "src": "12266:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7724,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12266:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7727,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12288:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7752,
+ "src": "12280:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7726,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12280:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12265:29:23"
+ },
+ "scope": 8269,
+ "src": "12139:303:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7854,
+ "nodeType": "Block",
+ "src": "12851:881:23",
+ "statements": [
+ {
+ "assignments": [
+ 7767
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7767,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "12874:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7854,
+ "src": "12861:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 7766,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12861:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7772,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7770,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7755,
+ "src": "12889:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12883:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7768,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12883:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7771,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12883:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12861:34:23"
+ },
+ {
+ "assignments": [
+ 7774
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7774,
+ "mutability": "mutable",
+ "name": "hasPrefix",
+ "nameLocation": "12948:9:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7854,
+ "src": "12943:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7773,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12943:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7794,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7779,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7775,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7759,
+ "src": "12961:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7778,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7776,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7757,
+ "src": "12967:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12975:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "12967:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12961:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 7780,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "12960:17:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "id": 7792,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7784,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7767,
+ "src": "13011:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 7785,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7757,
+ "src": "13019:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7783,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "12988:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 7786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12988:37:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 7782,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12981:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes2_$",
+ "typeString": "type(bytes2)"
+ },
+ "typeName": {
+ "id": 7781,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "12981:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7787,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12981:45:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "3078",
+ "id": 7790,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13037:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
+ "typeString": "literal_string \"0x\""
+ },
+ "value": "0x"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
+ "typeString": "literal_string \"0x\""
+ }
+ ],
+ "id": 7789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13030:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes2_$",
+ "typeString": "type(bytes2)"
+ },
+ "typeName": {
+ "id": 7788,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "13030:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13030:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "src": "12981:61:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "12960:82:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12943:99:23"
+ },
+ {
+ "assignments": [
+ 7796
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7796,
+ "mutability": "mutable",
+ "name": "offset",
+ "nameLocation": "13131:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7854,
+ "src": "13123:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7795,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13123:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7802,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7801,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 7797,
+ "name": "hasPrefix",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7774,
+ "src": "13140:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7798,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13150:6:23",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "13140:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 7799,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13140:18:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 7800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13161:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "13140:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13123:39:23"
+ },
+ {
+ "assignments": [
+ 7804
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7804,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "13181:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7854,
+ "src": "13173:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7803,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13173:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7806,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 7805,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13190:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13173:18:23"
+ },
+ {
+ "body": {
+ "id": 7848,
+ "nodeType": "Block",
+ "src": "13248:447:23",
+ "statements": [
+ {
+ "assignments": [
+ 7820
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7820,
+ "mutability": "mutable",
+ "name": "chr",
+ "nameLocation": "13268:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7848,
+ "src": "13262:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 7819,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "13262:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7830,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7825,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7767,
+ "src": "13317:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 7826,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7808,
+ "src": "13325:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7824,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "13294:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 7827,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13294:33:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 7823,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13287:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 7822,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "13287:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13287:41:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 7821,
+ "name": "_tryParseChr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8090,
+ "src": "13274:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$",
+ "typeString": "function (bytes1) pure returns (uint8)"
+ }
+ },
+ "id": 7829,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13274:55:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13262:67:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 7833,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7831,
+ "name": "chr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7820,
+ "src": "13347:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "3135",
+ "id": 7832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13353:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15_by_1",
+ "typeString": "int_const 15"
+ },
+ "value": "15"
+ },
+ "src": "13347:8:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7838,
+ "nodeType": "IfStatement",
+ "src": "13343:31:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13365:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 7835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13372:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 7836,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13364:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 7765,
+ "id": 7837,
+ "nodeType": "Return",
+ "src": "13357:17:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7839,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7804,
+ "src": "13388:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "hexValue": "3136",
+ "id": 7840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13398:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "13388:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7842,
+ "nodeType": "ExpressionStatement",
+ "src": "13388:12:23"
+ },
+ {
+ "id": 7847,
+ "nodeType": "UncheckedBlock",
+ "src": "13414:271:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 7845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 7843,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7804,
+ "src": "13657:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 7844,
+ "name": "chr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7820,
+ "src": "13667:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "13657:13:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7846,
+ "nodeType": "ExpressionStatement",
+ "src": "13657:13:23"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7815,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7813,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7808,
+ "src": "13234:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 7814,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7759,
+ "src": "13238:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13234:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7849,
+ "initializationExpression": {
+ "assignments": [
+ 7808
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7808,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "13214:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7849,
+ "src": "13206:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7807,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13206:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7812,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7809,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7757,
+ "src": "13218:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 7810,
+ "name": "offset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7796,
+ "src": "13226:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13218:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13206:26:23"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 7817,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "13243:3:23",
+ "subExpression": {
+ "id": 7816,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7808,
+ "src": "13245:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 7818,
+ "nodeType": "ExpressionStatement",
+ "src": "13243:3:23"
+ },
+ "nodeType": "ForStatement",
+ "src": "13201:494:23"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "74727565",
+ "id": 7850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13712:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ {
+ "id": 7851,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7804,
+ "src": "13718:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 7852,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13711:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "functionReturnParameters": 7765,
+ "id": 7853,
+ "nodeType": "Return",
+ "src": "13704:21:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7753,
+ "nodeType": "StructuredDocumentation",
+ "src": "12448:227:23",
+ "text": " @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior."
+ },
+ "id": 7855,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_tryParseHexUintUncheckedBounds",
+ "nameLocation": "12689:31:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7760,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7755,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "12744:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7855,
+ "src": "12730:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7754,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "12730:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7757,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "12767:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7855,
+ "src": "12759:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7756,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12759:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7759,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "12790:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7855,
+ "src": "12782:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7758,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12782:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12720:79:23"
+ },
+ "returnParameters": {
+ "id": 7765,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7762,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "12827:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7855,
+ "src": "12822:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7761,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12822:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7764,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12844:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7855,
+ "src": "12836:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7763,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12836:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12821:29:23"
+ },
+ "scope": 8269,
+ "src": "12680:1052:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 7873,
+ "nodeType": "Block",
+ "src": "14030:67:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7864,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7858,
+ "src": "14060:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14067:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7868,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7858,
+ "src": "14076:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14070:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7866,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14070:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7869,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14070:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14083:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "14070:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7863,
+ "name": "parseAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7874,
+ 7905
+ ],
+ "referencedDeclaration": 7905,
+ "src": "14047:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (address)"
+ }
+ },
+ "id": 7871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14047:43:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 7862,
+ "id": 7872,
+ "nodeType": "Return",
+ "src": "14040:50:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7856,
+ "nodeType": "StructuredDocumentation",
+ "src": "13738:212:23",
+ "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`"
+ },
+ "id": 7874,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseAddress",
+ "nameLocation": "13964:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7859,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7858,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "13991:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7874,
+ "src": "13977:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7857,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "13977:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13976:21:23"
+ },
+ "returnParameters": {
+ "id": 7862,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7861,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7874,
+ "src": "14021:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7860,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14021:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14020:9:23"
+ },
+ "scope": 8269,
+ "src": "13955:142:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7904,
+ "nodeType": "Block",
+ "src": "14470:165:23",
+ "statements": [
+ {
+ "assignments": [
+ 7887,
+ 7889
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7887,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "14486:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7904,
+ "src": "14481:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7886,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "14481:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7889,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "14503:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7904,
+ "src": "14495:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7888,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14495:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7895,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 7891,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7877,
+ "src": "14528:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 7892,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7879,
+ "src": "14535:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 7893,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7881,
+ "src": "14542:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7890,
+ "name": "tryParseAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7926,
+ 8030
+ ],
+ "referencedDeclaration": 8030,
+ "src": "14512:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)"
+ }
+ },
+ "id": 7894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14512:34:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14480:66:23"
+ },
+ {
+ "condition": {
+ "id": 7897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "14560:8:23",
+ "subExpression": {
+ "id": 7896,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7887,
+ "src": "14561:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7901,
+ "nodeType": "IfStatement",
+ "src": "14556:50:23",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 7898,
+ "name": "StringsInvalidAddressFormat",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6933,
+ "src": "14577:27:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 7899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14577:29:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 7900,
+ "nodeType": "RevertStatement",
+ "src": "14570:36:23"
+ }
+ },
+ {
+ "expression": {
+ "id": 7902,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7889,
+ "src": "14623:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 7885,
+ "id": 7903,
+ "nodeType": "Return",
+ "src": "14616:12:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7875,
+ "nodeType": "StructuredDocumentation",
+ "src": "14103:259:23",
+ "text": " @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`"
+ },
+ "id": 7905,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseAddress",
+ "nameLocation": "14376:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7882,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7877,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "14403:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7905,
+ "src": "14389:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7876,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "14389:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7879,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "14418:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7905,
+ "src": "14410:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7878,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14410:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7881,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "14433:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7905,
+ "src": "14425:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7880,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14425:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14388:49:23"
+ },
+ "returnParameters": {
+ "id": 7885,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7884,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 7905,
+ "src": "14461:7:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7883,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14461:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14460:9:23"
+ },
+ "scope": 8269,
+ "src": "14367:268:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 7925,
+ "nodeType": "Block",
+ "src": "14942:70:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7916,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7908,
+ "src": "14975:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 7917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14982:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7920,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7908,
+ "src": "14991:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14985:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7918,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14985:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14985:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7922,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14998:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "14985:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7915,
+ "name": "tryParseAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 7926,
+ 8030
+ ],
+ "referencedDeclaration": 8030,
+ "src": "14959:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)"
+ }
+ },
+ "id": 7923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14959:46:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "functionReturnParameters": 7914,
+ "id": 7924,
+ "nodeType": "Return",
+ "src": "14952:53:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7906,
+ "nodeType": "StructuredDocumentation",
+ "src": "14641:198:23",
+ "text": " @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n formatted address. See {parseAddress-string} requirements."
+ },
+ "id": 7926,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseAddress",
+ "nameLocation": "14853:15:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7909,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7908,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "14883:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7926,
+ "src": "14869:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7907,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "14869:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14868:21:23"
+ },
+ "returnParameters": {
+ "id": 7914,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7911,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "14918:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7926,
+ "src": "14913:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7910,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "14913:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7913,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "14935:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 7926,
+ "src": "14927:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7912,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14927:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14912:29:23"
+ },
+ "scope": 8269,
+ "src": "14844:168:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8029,
+ "nodeType": "Block",
+ "src": "15405:733:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7950,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7940,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7933,
+ "src": "15419:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 7943,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7929,
+ "src": "15431:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7942,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15425:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7941,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "15425:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7944,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15425:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 7945,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15438:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "15425:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15419:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7947,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7931,
+ "src": "15448:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 7948,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7933,
+ "src": "15456:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15448:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "15419:40:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7958,
+ "nodeType": "IfStatement",
+ "src": "15415:72:23",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 7951,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15469:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 7954,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15484: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": 7953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15476:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 7952,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "15476:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15476:10:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 7956,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "15468:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "functionReturnParameters": 7939,
+ "id": 7957,
+ "nodeType": "Return",
+ "src": "15461:26:23"
+ }
+ },
+ {
+ "assignments": [
+ 7960
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7960,
+ "mutability": "mutable",
+ "name": "hasPrefix",
+ "nameLocation": "15503:9:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8029,
+ "src": "15498:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7959,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "15498:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7983,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 7982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7961,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7933,
+ "src": "15516:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7962,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7931,
+ "src": "15522:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 7963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15530:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "15522:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15516:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 7966,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "15515:17:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "id": 7981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 7972,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7929,
+ "src": "15572:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 7971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15566:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 7970,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "15566:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15566:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 7974,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7931,
+ "src": "15580:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 7969,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "15543:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 7975,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15543:43:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 7968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15536:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes2_$",
+ "typeString": "type(bytes2)"
+ },
+ "typeName": {
+ "id": 7967,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "15536:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7976,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15536:51:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "3078",
+ "id": 7979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15598:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
+ "typeString": "literal_string \"0x\""
+ },
+ "value": "0x"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
+ "typeString": "literal_string \"0x\""
+ }
+ ],
+ "id": 7978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15591:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes2_$",
+ "typeString": "type(bytes2)"
+ },
+ "typeName": {
+ "id": 7977,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "15591:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 7980,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15591:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "src": "15536:67:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "15515:88:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15498:105:23"
+ },
+ {
+ "assignments": [
+ 7985
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 7985,
+ "mutability": "mutable",
+ "name": "expectedLength",
+ "nameLocation": "15692:14:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8029,
+ "src": "15684:22:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7984,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15684:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 7993,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3430",
+ "id": 7986,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15709:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ "value": "40"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 7987,
+ "name": "hasPrefix",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7960,
+ "src": "15714:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 7988,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15724:6:23",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "15714:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 7989,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15714:18:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 7990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15735:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "15714:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15709:27:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15684:52:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 7996,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 7994,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7933,
+ "src": "15801:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 7995,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7931,
+ "src": "15807:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15801:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 7997,
+ "name": "expectedLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7985,
+ "src": "15816:14:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15801:29:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 8027,
+ "nodeType": "Block",
+ "src": "16081:51:23",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 8020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16103:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16118: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": 8022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16110:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8021,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "16110:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16110:10:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 8025,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "16102:19:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "functionReturnParameters": 7939,
+ "id": 8026,
+ "nodeType": "Return",
+ "src": "16095:26:23"
+ }
+ ]
+ },
+ "id": 8028,
+ "nodeType": "IfStatement",
+ "src": "15797:335:23",
+ "trueBody": {
+ "id": 8019,
+ "nodeType": "Block",
+ "src": "15832:243:23",
+ "statements": [
+ {
+ "assignments": [
+ 8000,
+ 8002
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8000,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "15953:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8019,
+ "src": "15948:6:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7999,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "15948:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8002,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "15964:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8019,
+ "src": "15956:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8001,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15956:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8008,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8004,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7929,
+ "src": "16001:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 8005,
+ "name": "begin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7931,
+ "src": "16008:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 8006,
+ "name": "end",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7933,
+ "src": "16015:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8003,
+ "name": "_tryParseHexUintUncheckedBounds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 7855,
+ "src": "15969:31:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 8007,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15969:50:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15947:72:23"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 8009,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8000,
+ "src": "16041:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 8014,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8002,
+ "src": "16060:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8013,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16052:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 8012,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "16052:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16052:10:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 8011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16044:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8010,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "16044:7:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16044:19:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 8017,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "16040:24:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "functionReturnParameters": 7939,
+ "id": 8018,
+ "nodeType": "Return",
+ "src": "16033:31:23"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 7927,
+ "nodeType": "StructuredDocumentation",
+ "src": "15018:226:23",
+ "text": " @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n formatted address. See {parseAddress-string-uint256-uint256} requirements."
+ },
+ "id": 8030,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryParseAddress",
+ "nameLocation": "15258:15:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 7934,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7929,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "15297:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8030,
+ "src": "15283:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 7928,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "15283:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7931,
+ "mutability": "mutable",
+ "name": "begin",
+ "nameLocation": "15320:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8030,
+ "src": "15312:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7930,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15312:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7933,
+ "mutability": "mutable",
+ "name": "end",
+ "nameLocation": "15343:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8030,
+ "src": "15335:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 7932,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15335:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15273:79:23"
+ },
+ "returnParameters": {
+ "id": 7939,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7936,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "15381:7:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8030,
+ "src": "15376:12:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 7935,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "15376:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7938,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "15398:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8030,
+ "src": "15390:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 7937,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "15390:7:23",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15375:29:23"
+ },
+ "scope": 8269,
+ "src": "15249:889:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8089,
+ "nodeType": "Block",
+ "src": "16207:461:23",
+ "statements": [
+ {
+ "assignments": [
+ 8038
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8038,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "16223:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8089,
+ "src": "16217:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8037,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16217:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8043,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8041,
+ "name": "chr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8032,
+ "src": "16237:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 8040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16231:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 8039,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16231:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16231:10:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16217:24:23"
+ },
+ {
+ "id": 8086,
+ "nodeType": "UncheckedBlock",
+ "src": "16401:238:23",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 8050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8046,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8044,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16429:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "3437",
+ "id": 8045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16437:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_47_by_1",
+ "typeString": "int_const 47"
+ },
+ "value": "47"
+ },
+ "src": "16429:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8047,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16443:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3538",
+ "id": 8048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16451:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_58_by_1",
+ "typeString": "int_const 58"
+ },
+ "value": "58"
+ },
+ "src": "16443:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "16429:24:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 8061,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8055,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16489:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "3936",
+ "id": 8056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16497:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ "value": "96"
+ },
+ "src": "16489:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8060,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8058,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16503:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "313033",
+ "id": 8059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16511:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_103_by_1",
+ "typeString": "int_const 103"
+ },
+ "value": "103"
+ },
+ "src": "16503:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "16489:25:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 8072,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8066,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16550:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 8067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16558:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "16550:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 8071,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8069,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16564:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3731",
+ "id": 8070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16572:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_71_by_1",
+ "typeString": "int_const 71"
+ },
+ "value": "71"
+ },
+ "src": "16564:10:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "16550:24:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "expression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16618:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 8078,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16618:5:23",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ }
+ ],
+ "id": 8077,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "16613:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 8080,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16613:11:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint8",
+ "typeString": "type(uint8)"
+ }
+ },
+ "id": 8081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "16625:3:23",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "16613:15:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "functionReturnParameters": 8036,
+ "id": 8082,
+ "nodeType": "Return",
+ "src": "16606:22:23"
+ },
+ "id": 8083,
+ "nodeType": "IfStatement",
+ "src": "16546:82:23",
+ "trueBody": {
+ "expression": {
+ "id": 8075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8073,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16576:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "hexValue": "3535",
+ "id": 8074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16585:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_55_by_1",
+ "typeString": "int_const 55"
+ },
+ "value": "55"
+ },
+ "src": "16576:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 8076,
+ "nodeType": "ExpressionStatement",
+ "src": "16576:11:23"
+ }
+ },
+ "id": 8084,
+ "nodeType": "IfStatement",
+ "src": "16485:143:23",
+ "trueBody": {
+ "expression": {
+ "id": 8064,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8062,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16516:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "hexValue": "3837",
+ "id": 8063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16525:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_87_by_1",
+ "typeString": "int_const 87"
+ },
+ "value": "87"
+ },
+ "src": "16516:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 8065,
+ "nodeType": "ExpressionStatement",
+ "src": "16516:11:23"
+ }
+ },
+ "id": 8085,
+ "nodeType": "IfStatement",
+ "src": "16425:203:23",
+ "trueBody": {
+ "expression": {
+ "id": 8053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8051,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16455:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "hexValue": "3438",
+ "id": 8052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16464:2:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_48_by_1",
+ "typeString": "int_const 48"
+ },
+ "value": "48"
+ },
+ "src": "16455:11:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 8054,
+ "nodeType": "ExpressionStatement",
+ "src": "16455:11:23"
+ }
+ }
+ ]
+ },
+ {
+ "expression": {
+ "id": 8087,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8038,
+ "src": "16656:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "functionReturnParameters": 8036,
+ "id": 8088,
+ "nodeType": "Return",
+ "src": "16649:12:23"
+ }
+ ]
+ },
+ "id": 8090,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_tryParseChr",
+ "nameLocation": "16153:12:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8033,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8032,
+ "mutability": "mutable",
+ "name": "chr",
+ "nameLocation": "16173:3:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8090,
+ "src": "16166:10:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "typeName": {
+ "id": 8031,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "16166:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16165:12:23"
+ },
+ "returnParameters": {
+ "id": 8036,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8035,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8090,
+ "src": "16200:5:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8034,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16200:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16199:7:23"
+ },
+ "scope": 8269,
+ "src": "16144:524:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 8255,
+ "nodeType": "Block",
+ "src": "17334:1331:23",
+ "statements": [
+ {
+ "assignments": [
+ 8099
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8099,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "17357:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8255,
+ "src": "17344:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8098,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "17344:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8104,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8102,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8093,
+ "src": "17372:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 8101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "17366:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 8100,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "17366:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17366:12:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17344:34:23"
+ },
+ {
+ "assignments": [
+ 8106
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8106,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "17401:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8255,
+ "src": "17388:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8105,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "17388:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8114,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 8109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17420:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "expression": {
+ "id": 8110,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8099,
+ "src": "17424:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17431:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "17424:13:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17420:17:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "17410:9:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ },
+ "typeName": {
+ "id": 8107,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "17414:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ }
+ },
+ "id": 8113,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17410:28:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17388:50:23"
+ },
+ {
+ "assignments": [
+ 8116
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8116,
+ "mutability": "mutable",
+ "name": "outputLength",
+ "nameLocation": "17479:12:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8255,
+ "src": "17471:20:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8115,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17471:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8118,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 8117,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17494:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17471:24:23"
+ },
+ {
+ "body": {
+ "id": 8247,
+ "nodeType": "Block",
+ "src": "17546:854:23",
+ "statements": [
+ {
+ "assignments": [
+ 8130
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8130,
+ "mutability": "mutable",
+ "name": "char",
+ "nameLocation": "17567:4:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8247,
+ "src": "17560:11:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "typeName": {
+ "id": 8129,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "17560:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8138,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 8134,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8099,
+ "src": "17604:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 8135,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8120,
+ "src": "17612:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8133,
+ "name": "_unsafeReadBytesOffset",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8268,
+ "src": "17581:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
+ }
+ },
+ "id": 8136,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17581:33:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "17574:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes1_$",
+ "typeString": "type(bytes1)"
+ },
+ "typeName": {
+ "id": 8131,
+ "name": "bytes1",
+ "nodeType": "ElementaryTypeName",
+ "src": "17574:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17574:41:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17560:55:23"
+ },
+ {
+ "condition": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8147,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8139,
+ "name": "SPECIAL_CHARS_LOOKUP",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6920,
+ "src": "17635:20:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 8140,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17659:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 8143,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "17670:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ ],
+ "id": 8142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "17664:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 8141,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "17664:5:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17664:11:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "17659:16:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 8146,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "17658:18:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17635:41:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 8148,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "17634:43:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 8149,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17681:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "17634:48:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 8151,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "17633:50:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 8245,
+ "nodeType": "Block",
+ "src": "18328:62:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 8243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8238,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "18346:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8241,
+ "indexExpression": {
+ "id": 8240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "18353:14:23",
+ "subExpression": {
+ "id": 8239,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "18353:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "18346:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 8242,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "18371:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "src": "18346:29:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8244,
+ "nodeType": "ExpressionStatement",
+ "src": "18346:29:23"
+ }
+ ]
+ },
+ "id": 8246,
+ "nodeType": "IfStatement",
+ "src": "17629:761:23",
+ "trueBody": {
+ "id": 8237,
+ "nodeType": "Block",
+ "src": "17685:637:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 8157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8152,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "17703:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8155,
+ "indexExpression": {
+ "id": 8154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17710:14:23",
+ "subExpression": {
+ "id": 8153,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "17710:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17703:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "5c",
+ "id": 8156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17728:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095",
+ "typeString": "literal_string \"\\\""
+ },
+ "value": "\\"
+ },
+ "src": "17703:29:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8158,
+ "nodeType": "ExpressionStatement",
+ "src": "17703:29:23"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8161,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8159,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "17754:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783038",
+ "id": 8160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17762:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "0x08"
+ },
+ "src": "17754:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8169,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "17823:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783039",
+ "id": 8170,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17831:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9_by_1",
+ "typeString": "int_const 9"
+ },
+ "value": "0x09"
+ },
+ "src": "17823:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8179,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "17892:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783061",
+ "id": 8180,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17900:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "0x0a"
+ },
+ "src": "17892:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8191,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8189,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "17961:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783063",
+ "id": 8190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17969:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "0x0c"
+ },
+ "src": "17961:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8201,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8199,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "18030:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783064",
+ "id": 8200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18038:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_13_by_1",
+ "typeString": "int_const 13"
+ },
+ "value": "0x0d"
+ },
+ "src": "18030:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8209,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "18099:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783563",
+ "id": 8210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18107:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_92_by_1",
+ "typeString": "int_const 92"
+ },
+ "value": "0x5c"
+ },
+ "src": "18099:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 8221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8219,
+ "name": "char",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8130,
+ "src": "18169:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30783232",
+ "id": 8220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18177:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_34_by_1",
+ "typeString": "int_const 34"
+ },
+ "value": "0x22"
+ },
+ "src": "18169:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8230,
+ "nodeType": "IfStatement",
+ "src": "18165:143:23",
+ "trueBody": {
+ "id": 8229,
+ "nodeType": "Block",
+ "src": "18183:125:23",
+ "statements": [
+ {
+ "expression": {
+ "id": 8227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8222,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "18261:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8225,
+ "indexExpression": {
+ "id": 8224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "18268:14:23",
+ "subExpression": {
+ "id": 8223,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "18268:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "18261:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "22",
+ "id": 8226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18286:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0",
+ "typeString": "literal_string \"\"\""
+ },
+ "value": "\""
+ },
+ "src": "18261:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8228,
+ "nodeType": "ExpressionStatement",
+ "src": "18261:28:23"
+ }
+ ]
+ }
+ },
+ "id": 8231,
+ "nodeType": "IfStatement",
+ "src": "18095:213:23",
+ "trueBody": {
+ "expression": {
+ "id": 8217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8212,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "18113:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8215,
+ "indexExpression": {
+ "id": 8214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "18120:14:23",
+ "subExpression": {
+ "id": 8213,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "18120:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "18113:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "5c",
+ "id": 8216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18138:4:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095",
+ "typeString": "literal_string \"\\\""
+ },
+ "value": "\\"
+ },
+ "src": "18113:29:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8218,
+ "nodeType": "ExpressionStatement",
+ "src": "18113:29:23"
+ }
+ },
+ "id": 8232,
+ "nodeType": "IfStatement",
+ "src": "18026:282:23",
+ "trueBody": {
+ "expression": {
+ "id": 8207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8202,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "18044:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8205,
+ "indexExpression": {
+ "id": 8204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "18051:14:23",
+ "subExpression": {
+ "id": 8203,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "18051:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "18044:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "72",
+ "id": 8206,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18069:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_414f72a4d550cad29f17d9d99a4af64b3776ec5538cd440cef0f03fef2e9e010",
+ "typeString": "literal_string \"r\""
+ },
+ "value": "r"
+ },
+ "src": "18044:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8208,
+ "nodeType": "ExpressionStatement",
+ "src": "18044:28:23"
+ }
+ },
+ "id": 8233,
+ "nodeType": "IfStatement",
+ "src": "17957:351:23",
+ "trueBody": {
+ "expression": {
+ "id": 8197,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8192,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "17975:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8195,
+ "indexExpression": {
+ "id": 8194,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17982:14:23",
+ "subExpression": {
+ "id": 8193,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "17982:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17975:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66",
+ "id": 8196,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18000:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483",
+ "typeString": "literal_string \"f\""
+ },
+ "value": "f"
+ },
+ "src": "17975:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8198,
+ "nodeType": "ExpressionStatement",
+ "src": "17975:28:23"
+ }
+ },
+ "id": 8234,
+ "nodeType": "IfStatement",
+ "src": "17888:420:23",
+ "trueBody": {
+ "expression": {
+ "id": 8187,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8182,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "17906:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8185,
+ "indexExpression": {
+ "id": 8184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17913:14:23",
+ "subExpression": {
+ "id": 8183,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "17913:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17906:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "6e",
+ "id": 8186,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17931:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_4b4ecedb4964a40fe416b16c7bd8b46092040ec42ef0aa69e59f09872f105cf3",
+ "typeString": "literal_string \"n\""
+ },
+ "value": "n"
+ },
+ "src": "17906:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8188,
+ "nodeType": "ExpressionStatement",
+ "src": "17906:28:23"
+ }
+ },
+ "id": 8235,
+ "nodeType": "IfStatement",
+ "src": "17819:489:23",
+ "trueBody": {
+ "expression": {
+ "id": 8177,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8172,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "17837:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8175,
+ "indexExpression": {
+ "id": 8174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17844:14:23",
+ "subExpression": {
+ "id": 8173,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "17844:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17837:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74",
+ "id": 8176,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17862:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cac1bb71f0a97c8ac94ca9546b43178a9ad254c7b757ac07433aa6df35cd8089",
+ "typeString": "literal_string \"t\""
+ },
+ "value": "t"
+ },
+ "src": "17837:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8178,
+ "nodeType": "ExpressionStatement",
+ "src": "17837:28:23"
+ }
+ },
+ "id": 8236,
+ "nodeType": "IfStatement",
+ "src": "17750:558:23",
+ "trueBody": {
+ "expression": {
+ "id": 8167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 8162,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "17768:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8165,
+ "indexExpression": {
+ "id": 8164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17775:14:23",
+ "subExpression": {
+ "id": 8163,
+ "name": "outputLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8116,
+ "src": "17775:12:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17768:22:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "62",
+ "id": 8166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17793:3:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510",
+ "typeString": "literal_string \"b\""
+ },
+ "value": "b"
+ },
+ "src": "17768:28:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "id": 8168,
+ "nodeType": "ExpressionStatement",
+ "src": "17768:28:23"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8122,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8120,
+ "src": "17522:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 8123,
+ "name": "buffer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8099,
+ "src": "17526:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17533:6:23",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "17526:13:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17522:17:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8248,
+ "initializationExpression": {
+ "assignments": [
+ 8120
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8120,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "17519:1:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8248,
+ "src": "17511:9:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17511:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8121,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17511:9:23"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 8127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "17541:3:23",
+ "subExpression": {
+ "id": 8126,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8120,
+ "src": "17543:1:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 8128,
+ "nodeType": "ExpressionStatement",
+ "src": "17541:3:23"
+ },
+ "nodeType": "ForStatement",
+ "src": "17506:894:23"
+ },
+ {
+ "AST": {
+ "nativeSrc": "18498:129:23",
+ "nodeType": "YulBlock",
+ "src": "18498:129:23",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "output",
+ "nativeSrc": "18519:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "18519:6:23"
+ },
+ {
+ "name": "outputLength",
+ "nativeSrc": "18527:12:23",
+ "nodeType": "YulIdentifier",
+ "src": "18527:12:23"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18512:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "18512:6:23"
+ },
+ "nativeSrc": "18512:28:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18512:28:23"
+ },
+ "nativeSrc": "18512:28:23",
+ "nodeType": "YulExpressionStatement",
+ "src": "18512:28:23"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18560:4:23",
+ "nodeType": "YulLiteral",
+ "src": "18560:4:23",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "output",
+ "nativeSrc": "18570:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "18570:6:23"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18582:1:23",
+ "nodeType": "YulLiteral",
+ "src": "18582:1:23",
+ "type": "",
+ "value": "5"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18589:1:23",
+ "nodeType": "YulLiteral",
+ "src": "18589:1:23",
+ "type": "",
+ "value": "5"
+ },
+ {
+ "arguments": [
+ {
+ "name": "outputLength",
+ "nativeSrc": "18596:12:23",
+ "nodeType": "YulIdentifier",
+ "src": "18596:12:23"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18610:2:23",
+ "nodeType": "YulLiteral",
+ "src": "18610:2:23",
+ "type": "",
+ "value": "63"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18592:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "18592:3:23"
+ },
+ "nativeSrc": "18592:21:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18592:21:23"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nativeSrc": "18585:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "18585:3:23"
+ },
+ "nativeSrc": "18585:29:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18585:29:23"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "18578:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "18578:3:23"
+ },
+ "nativeSrc": "18578:37:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18578:37:23"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18566:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "18566:3:23"
+ },
+ "nativeSrc": "18566:50:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18566:50:23"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18553:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "18553:6:23"
+ },
+ "nativeSrc": "18553:64:23",
+ "nodeType": "YulFunctionCall",
+ "src": "18553:64:23"
+ },
+ "nativeSrc": "18553:64:23",
+ "nodeType": "YulExpressionStatement",
+ "src": "18553:64:23"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8106,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18519:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8106,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18570:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8116,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18527:12:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8116,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18596:12:23",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8249,
+ "nodeType": "InlineAssembly",
+ "src": "18473:154:23"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8252,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8106,
+ "src": "18651:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 8251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "18644:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_string_storage_ptr_$",
+ "typeString": "type(string storage pointer)"
+ },
+ "typeName": {
+ "id": 8250,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "18644:6:23",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18644:14:23",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "functionReturnParameters": 8097,
+ "id": 8254,
+ "nodeType": "Return",
+ "src": "18637:21:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8091,
+ "nodeType": "StructuredDocumentation",
+ "src": "16674:576:23",
+ "text": " @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n characters that are not in this range, but other tooling may provide different results."
+ },
+ "id": 8256,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "escapeJSON",
+ "nameLocation": "17264:10:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8094,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8093,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "17289:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8256,
+ "src": "17275:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 8092,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "17275:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17274:21:23"
+ },
+ "returnParameters": {
+ "id": 8097,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8096,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8256,
+ "src": "17319:13:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 8095,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "17319:6:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17318:15:23"
+ },
+ "scope": 8269,
+ "src": "17255:1410:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8267,
+ "nodeType": "Block",
+ "src": "19050:225:23",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "19199:70:23",
+ "nodeType": "YulBlock",
+ "src": "19199:70:23",
+ "statements": [
+ {
+ "nativeSrc": "19213:46:23",
+ "nodeType": "YulAssignment",
+ "src": "19213:46:23",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "buffer",
+ "nativeSrc": "19232:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "19232:6:23"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "19244:4:23",
+ "nodeType": "YulLiteral",
+ "src": "19244:4:23",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "19250:6:23",
+ "nodeType": "YulIdentifier",
+ "src": "19250:6:23"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "19240:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "19240:3:23"
+ },
+ "nativeSrc": "19240:17:23",
+ "nodeType": "YulFunctionCall",
+ "src": "19240:17:23"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "19228:3:23",
+ "nodeType": "YulIdentifier",
+ "src": "19228:3:23"
+ },
+ "nativeSrc": "19228:30:23",
+ "nodeType": "YulFunctionCall",
+ "src": "19228:30:23"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "19222:5:23",
+ "nodeType": "YulIdentifier",
+ "src": "19222:5:23"
+ },
+ "nativeSrc": "19222:37:23",
+ "nodeType": "YulFunctionCall",
+ "src": "19222:37:23"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "19213:5:23",
+ "nodeType": "YulIdentifier",
+ "src": "19213:5:23"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8259,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19232:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8261,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19250:6:23",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8264,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19213:5:23",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8266,
+ "nodeType": "InlineAssembly",
+ "src": "19174:95:23"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8257,
+ "nodeType": "StructuredDocumentation",
+ "src": "18671:268:23",
+ "text": " @dev Reads a bytes32 from a bytes array without bounds checking.\n NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n assembly block as such would prevent some optimizations."
+ },
+ "id": 8268,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_unsafeReadBytesOffset",
+ "nameLocation": "18953:22:23",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8262,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8259,
+ "mutability": "mutable",
+ "name": "buffer",
+ "nameLocation": "18989:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8268,
+ "src": "18976:19:23",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8258,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18976:5:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8261,
+ "mutability": "mutable",
+ "name": "offset",
+ "nameLocation": "19005:6:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8268,
+ "src": "18997:14:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8260,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18997:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18975:37:23"
+ },
+ "returnParameters": {
+ "id": 8265,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8264,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "19043:5:23",
+ "nodeType": "VariableDeclaration",
+ "scope": 8268,
+ "src": "19035:13:23",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8263,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "19035:7:23",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19034:15:23"
+ },
+ "scope": 8269,
+ "src": "18944:331:23",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ }
+ ],
+ "scope": 8270,
+ "src": "297:18980:23",
+ "usedErrors": [
+ 6927,
+ 6930,
+ 6933
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "101:19177:23"
+ },
+ "id": 23
+ },
+ "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
+ "exportedSymbols": {
+ "ECDSA": [
+ 8617
+ ]
+ },
+ "id": 8618,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 8271,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "112:24:24"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ECDSA",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 8272,
+ "nodeType": "StructuredDocumentation",
+ "src": "138:205:24",
+ "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,
+ "id": 8617,
+ "linearizedBaseContracts": [
+ 8617
+ ],
+ "name": "ECDSA",
+ "nameLocation": "352:5:24",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "ECDSA.RecoverError",
+ "id": 8277,
+ "members": [
+ {
+ "id": 8273,
+ "name": "NoError",
+ "nameLocation": "392:7:24",
+ "nodeType": "EnumValue",
+ "src": "392:7:24"
+ },
+ {
+ "id": 8274,
+ "name": "InvalidSignature",
+ "nameLocation": "409:16:24",
+ "nodeType": "EnumValue",
+ "src": "409:16:24"
+ },
+ {
+ "id": 8275,
+ "name": "InvalidSignatureLength",
+ "nameLocation": "435:22:24",
+ "nodeType": "EnumValue",
+ "src": "435:22:24"
+ },
+ {
+ "id": 8276,
+ "name": "InvalidSignatureS",
+ "nameLocation": "467:17:24",
+ "nodeType": "EnumValue",
+ "src": "467:17:24"
+ }
+ ],
+ "name": "RecoverError",
+ "nameLocation": "369:12:24",
+ "nodeType": "EnumDefinition",
+ "src": "364:126:24"
+ },
+ {
+ "documentation": {
+ "id": 8278,
+ "nodeType": "StructuredDocumentation",
+ "src": "496:63:24",
+ "text": " @dev The signature derives the `address(0)`."
+ },
+ "errorSelector": "f645eedf",
+ "id": 8280,
+ "name": "ECDSAInvalidSignature",
+ "nameLocation": "570:21:24",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 8279,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "591:2:24"
+ },
+ "src": "564:30:24"
+ },
+ {
+ "documentation": {
+ "id": 8281,
+ "nodeType": "StructuredDocumentation",
+ "src": "600:60:24",
+ "text": " @dev The signature has an invalid length."
+ },
+ "errorSelector": "fce698f7",
+ "id": 8285,
+ "name": "ECDSAInvalidSignatureLength",
+ "nameLocation": "671:27:24",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 8284,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8283,
+ "mutability": "mutable",
+ "name": "length",
+ "nameLocation": "707:6:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8285,
+ "src": "699:14:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "699:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "698:16:24"
+ },
+ "src": "665:50:24"
+ },
+ {
+ "documentation": {
+ "id": 8286,
+ "nodeType": "StructuredDocumentation",
+ "src": "721:85:24",
+ "text": " @dev The signature has an S value that is in the upper half order."
+ },
+ "errorSelector": "d78bce0c",
+ "id": 8290,
+ "name": "ECDSAInvalidSignatureS",
+ "nameLocation": "817:22:24",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 8289,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8288,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "848:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8290,
+ "src": "840:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8287,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "840:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "839:11:24"
+ },
+ "src": "811:40:24"
+ },
+ {
+ "body": {
+ "id": 8342,
+ "nodeType": "Block",
+ "src": "2285:622:24",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8308,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 8305,
+ "name": "signature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8295,
+ "src": "2299:9:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8306,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2309:6:24",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2299:16:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "3635",
+ "id": 8307,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2319:2:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65_by_1",
+ "typeString": "int_const 65"
+ },
+ "value": "65"
+ },
+ "src": "2299:22:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 8340,
+ "nodeType": "Block",
+ "src": "2793:108:24",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2823:1:24",
+ "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": 8328,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2815:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8327,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2815:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2815:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 8331,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "2827:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8332,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2840:22:24",
+ "memberName": "InvalidSignatureLength",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8275,
+ "src": "2827:35:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 8335,
+ "name": "signature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8295,
+ "src": "2872:9:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8336,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2882:6:24",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2872:16:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2864:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 8333,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2864:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2864:25:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "id": 8338,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2814:76:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8304,
+ "id": 8339,
+ "nodeType": "Return",
+ "src": "2807:83:24"
+ }
+ ]
+ },
+ "id": 8341,
+ "nodeType": "IfStatement",
+ "src": "2295:606:24",
+ "trueBody": {
+ "id": 8326,
+ "nodeType": "Block",
+ "src": "2323:464:24",
+ "statements": [
+ {
+ "assignments": [
+ 8310
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8310,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "2345:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8326,
+ "src": "2337:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8309,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2337:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8311,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2337:9:24"
+ },
+ {
+ "assignments": [
+ 8313
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8313,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "2368:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8326,
+ "src": "2360:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8312,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2360:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8314,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2360:9:24"
+ },
+ {
+ "assignments": [
+ 8316
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8316,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "2389:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8326,
+ "src": "2383:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8315,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2383:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8317,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2383:7:24"
+ },
+ {
+ "AST": {
+ "nativeSrc": "2560:171:24",
+ "nodeType": "YulBlock",
+ "src": "2560:171:24",
+ "statements": [
+ {
+ "nativeSrc": "2578:32:24",
+ "nodeType": "YulAssignment",
+ "src": "2578:32:24",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "signature",
+ "nativeSrc": "2593:9:24",
+ "nodeType": "YulIdentifier",
+ "src": "2593:9:24"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2604:4:24",
+ "nodeType": "YulLiteral",
+ "src": "2604:4:24",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2589:3:24",
+ "nodeType": "YulIdentifier",
+ "src": "2589:3:24"
+ },
+ "nativeSrc": "2589:20:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2589:20:24"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2583:5:24",
+ "nodeType": "YulIdentifier",
+ "src": "2583:5:24"
+ },
+ "nativeSrc": "2583:27:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2583:27:24"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nativeSrc": "2578:1:24",
+ "nodeType": "YulIdentifier",
+ "src": "2578:1:24"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2627:32:24",
+ "nodeType": "YulAssignment",
+ "src": "2627:32:24",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "signature",
+ "nativeSrc": "2642:9:24",
+ "nodeType": "YulIdentifier",
+ "src": "2642:9:24"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2653:4:24",
+ "nodeType": "YulLiteral",
+ "src": "2653:4:24",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2638:3:24",
+ "nodeType": "YulIdentifier",
+ "src": "2638:3:24"
+ },
+ "nativeSrc": "2638:20:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2638:20:24"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2632:5:24",
+ "nodeType": "YulIdentifier",
+ "src": "2632:5:24"
+ },
+ "nativeSrc": "2632:27:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2632:27:24"
+ },
+ "variableNames": [
+ {
+ "name": "s",
+ "nativeSrc": "2627:1:24",
+ "nodeType": "YulIdentifier",
+ "src": "2627:1:24"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2676:41:24",
+ "nodeType": "YulAssignment",
+ "src": "2676:41:24",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2686:1:24",
+ "nodeType": "YulLiteral",
+ "src": "2686:1:24",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "signature",
+ "nativeSrc": "2699:9:24",
+ "nodeType": "YulIdentifier",
+ "src": "2699:9:24"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2710:4:24",
+ "nodeType": "YulLiteral",
+ "src": "2710:4:24",
+ "type": "",
+ "value": "0x60"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2695:3:24",
+ "nodeType": "YulIdentifier",
+ "src": "2695:3:24"
+ },
+ "nativeSrc": "2695:20:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2695:20:24"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2689:5:24",
+ "nodeType": "YulIdentifier",
+ "src": "2689:5:24"
+ },
+ "nativeSrc": "2689:27:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2689:27:24"
+ }
+ ],
+ "functionName": {
+ "name": "byte",
+ "nativeSrc": "2681:4:24",
+ "nodeType": "YulIdentifier",
+ "src": "2681:4:24"
+ },
+ "nativeSrc": "2681:36:24",
+ "nodeType": "YulFunctionCall",
+ "src": "2681:36:24"
+ },
+ "variableNames": [
+ {
+ "name": "v",
+ "nativeSrc": "2676:1:24",
+ "nodeType": "YulIdentifier",
+ "src": "2676:1:24"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8310,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2578:1:24",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8313,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2627:1:24",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8295,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2593:9:24",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8295,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2642:9:24",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8295,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2699:9:24",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8316,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2676:1:24",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8318,
+ "nodeType": "InlineAssembly",
+ "src": "2535:196:24"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8320,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8293,
+ "src": "2762:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8321,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8316,
+ "src": "2768:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ {
+ "id": 8322,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8310,
+ "src": "2771:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8323,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8313,
+ "src": "2774:1:24",
+ "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": 8319,
+ "name": "tryRecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 8343,
+ 8423,
+ 8531
+ ],
+ "referencedDeclaration": 8531,
+ "src": "2751:10:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 8324,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2751:25:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8304,
+ "id": 8325,
+ "nodeType": "Return",
+ "src": "2744:32:24"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8291,
+ "nodeType": "StructuredDocumentation",
+ "src": "857:1267:24",
+ "text": " @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can 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 {MessageHashUtils-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]"
+ },
+ "id": 8343,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryRecover",
+ "nameLocation": "2138:10:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8296,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8293,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "2166:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8343,
+ "src": "2158:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8292,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2158:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8295,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "2193:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8343,
+ "src": "2180:22:24",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8294,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2180:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2148:60:24"
+ },
+ "returnParameters": {
+ "id": 8304,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8298,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "2240:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8343,
+ "src": "2232:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8297,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2232:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8301,
+ "mutability": "mutable",
+ "name": "err",
+ "nameLocation": "2264:3:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8343,
+ "src": "2251:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8300,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8299,
+ "name": "RecoverError",
+ "nameLocations": [
+ "2251:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "2251:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "2251:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8303,
+ "mutability": "mutable",
+ "name": "errArg",
+ "nameLocation": "2277:6:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8343,
+ "src": "2269:14:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8302,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2269:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2231:53:24"
+ },
+ "scope": 8617,
+ "src": "2129:778:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8372,
+ "nodeType": "Block",
+ "src": "3801:168:24",
+ "statements": [
+ {
+ "assignments": [
+ 8354,
+ 8357,
+ 8359
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8354,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "3820:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8372,
+ "src": "3812:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8353,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3812:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8357,
+ "mutability": "mutable",
+ "name": "error",
+ "nameLocation": "3844:5:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8372,
+ "src": "3831:18:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8356,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8355,
+ "name": "RecoverError",
+ "nameLocations": [
+ "3831:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "3831:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "3831:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8359,
+ "mutability": "mutable",
+ "name": "errorArg",
+ "nameLocation": "3859:8:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8372,
+ "src": "3851:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8358,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3851:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8364,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8361,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8346,
+ "src": "3882:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8362,
+ "name": "signature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8348,
+ "src": "3888:9:24",
+ "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": 8360,
+ "name": "tryRecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 8343,
+ 8423,
+ 8531
+ ],
+ "referencedDeclaration": 8343,
+ "src": "3871:10:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 8363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3871:27:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3811:87:24"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8366,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8357,
+ "src": "3920:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "id": 8367,
+ "name": "errorArg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8359,
+ "src": "3927:8:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8365,
+ "name": "_throwError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8616,
+ "src": "3908:11:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$",
+ "typeString": "function (enum ECDSA.RecoverError,bytes32) pure"
+ }
+ },
+ "id": 8368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3908:28:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 8369,
+ "nodeType": "ExpressionStatement",
+ "src": "3908:28:24"
+ },
+ {
+ "expression": {
+ "id": 8370,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8354,
+ "src": "3953:9:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 8352,
+ "id": 8371,
+ "nodeType": "Return",
+ "src": "3946:16:24"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8344,
+ "nodeType": "StructuredDocumentation",
+ "src": "2913:796:24",
+ "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 {MessageHashUtils-toEthSignedMessageHash} on it."
+ },
+ "id": 8373,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "recover",
+ "nameLocation": "3723:7:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8349,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8346,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "3739:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8373,
+ "src": "3731:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8345,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3731:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8348,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "3758:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8373,
+ "src": "3745:22:24",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8347,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3745:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3730:38:24"
+ },
+ "returnParameters": {
+ "id": 8352,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8351,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8373,
+ "src": "3792:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8350,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3792:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3791:9:24"
+ },
+ "scope": 8617,
+ "src": "3714:255:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8422,
+ "nodeType": "Block",
+ "src": "4348:342:24",
+ "statements": [
+ {
+ "id": 8421,
+ "nodeType": "UncheckedBlock",
+ "src": "4358:326:24",
+ "statements": [
+ {
+ "assignments": [
+ 8391
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8391,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "4390:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8421,
+ "src": "4382:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8390,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4382:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8398,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 8397,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8392,
+ "name": "vs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8380,
+ "src": "4394:2:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666",
+ "id": 8395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4407:66:24",
+ "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": 8394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4399:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 8393,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4399:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4399:75:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4394:80:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4382:92:24"
+ },
+ {
+ "assignments": [
+ 8400
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8400,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "4591:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8421,
+ "src": "4585:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8399,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "4585:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8413,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8411,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8408,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 8405,
+ "name": "vs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8380,
+ "src": "4610:2:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8404,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4602:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 8403,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4602:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8406,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4602:11:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "323535",
+ "id": 8407,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4617:3:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "255"
+ },
+ "src": "4602:18:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 8409,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4601:20:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3237",
+ "id": 8410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4624:2:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_27_by_1",
+ "typeString": "int_const 27"
+ },
+ "value": "27"
+ },
+ "src": "4601:25:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4595:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 8401,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "4595:5:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8412,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4595:32:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4585:42:24"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8415,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8376,
+ "src": "4659:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8416,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8400,
+ "src": "4665:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ {
+ "id": 8417,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8378,
+ "src": "4668:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8418,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8391,
+ "src": "4671:1:24",
+ "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": 8414,
+ "name": "tryRecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 8343,
+ 8423,
+ 8531
+ ],
+ "referencedDeclaration": 8531,
+ "src": "4648:10:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 8419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4648:25:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8389,
+ "id": 8420,
+ "nodeType": "Return",
+ "src": "4641:32:24"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8374,
+ "nodeType": "StructuredDocumentation",
+ "src": "3975:205:24",
+ "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[ERC-2098 short signatures]"
+ },
+ "id": 8423,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryRecover",
+ "nameLocation": "4194:10:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8381,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8376,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "4222:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4214:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8375,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4214:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8378,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "4244:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4236:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8377,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4236:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8380,
+ "mutability": "mutable",
+ "name": "vs",
+ "nameLocation": "4263:2:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4255:10:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8379,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4255:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4204:67:24"
+ },
+ "returnParameters": {
+ "id": 8389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8383,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "4303:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4295:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8382,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4295:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8386,
+ "mutability": "mutable",
+ "name": "err",
+ "nameLocation": "4327:3:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4314:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8385,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8384,
+ "name": "RecoverError",
+ "nameLocations": [
+ "4314:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "4314:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "4314:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8388,
+ "mutability": "mutable",
+ "name": "errArg",
+ "nameLocation": "4340:6:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8423,
+ "src": "4332:14:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8387,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4332:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4294:53:24"
+ },
+ "scope": 8617,
+ "src": "4185:505:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8455,
+ "nodeType": "Block",
+ "src": "4903:164:24",
+ "statements": [
+ {
+ "assignments": [
+ 8436,
+ 8439,
+ 8441
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8436,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "4922:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8455,
+ "src": "4914:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8435,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4914:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8439,
+ "mutability": "mutable",
+ "name": "error",
+ "nameLocation": "4946:5:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8455,
+ "src": "4933:18:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8438,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8437,
+ "name": "RecoverError",
+ "nameLocations": [
+ "4933:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "4933:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "4933:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8441,
+ "mutability": "mutable",
+ "name": "errorArg",
+ "nameLocation": "4961:8:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8455,
+ "src": "4953:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8440,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4953:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8447,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8443,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8426,
+ "src": "4984:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8444,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8428,
+ "src": "4990:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8445,
+ "name": "vs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8430,
+ "src": "4993:2:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8442,
+ "name": "tryRecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 8343,
+ 8423,
+ 8531
+ ],
+ "referencedDeclaration": 8423,
+ "src": "4973:10:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 8446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4973:23:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4913:83:24"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8449,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8439,
+ "src": "5018:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "id": 8450,
+ "name": "errorArg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8441,
+ "src": "5025:8:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8448,
+ "name": "_throwError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8616,
+ "src": "5006:11:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$",
+ "typeString": "function (enum ECDSA.RecoverError,bytes32) pure"
+ }
+ },
+ "id": 8451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5006:28:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 8452,
+ "nodeType": "ExpressionStatement",
+ "src": "5006:28:24"
+ },
+ {
+ "expression": {
+ "id": 8453,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8436,
+ "src": "5051:9:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 8434,
+ "id": 8454,
+ "nodeType": "Return",
+ "src": "5044:16:24"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8424,
+ "nodeType": "StructuredDocumentation",
+ "src": "4696:116:24",
+ "text": " @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately."
+ },
+ "id": 8456,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "recover",
+ "nameLocation": "4826:7:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8431,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8426,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "4842:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8456,
+ "src": "4834:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8425,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4834:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8428,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "4856:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8456,
+ "src": "4848:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8427,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4848:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8430,
+ "mutability": "mutable",
+ "name": "vs",
+ "nameLocation": "4867:2:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8456,
+ "src": "4859:10:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8429,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4859:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4833:37:24"
+ },
+ "returnParameters": {
+ "id": 8434,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8433,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8456,
+ "src": "4894:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8432,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4894:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4893:9:24"
+ },
+ "scope": 8617,
+ "src": "4817:250:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8530,
+ "nodeType": "Block",
+ "src": "5382:1372:24",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8480,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 8477,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8465,
+ "src": "6278:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6270:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 8475,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6270:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6270:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130",
+ "id": 8479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6283:66:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1",
+ "typeString": "int_const 5789...(69 digits omitted)...7168"
+ },
+ "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"
+ },
+ "src": "6270:79:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8491,
+ "nodeType": "IfStatement",
+ "src": "6266:164:24",
+ "trueBody": {
+ "id": 8490,
+ "nodeType": "Block",
+ "src": "6351:79:24",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6381:1:24",
+ "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": 8482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6373:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8481,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6373:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6373:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 8485,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "6385:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6398:17:24",
+ "memberName": "InvalidSignatureS",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8276,
+ "src": "6385:30:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "id": 8487,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8465,
+ "src": "6417:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "id": 8488,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6372:47:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8474,
+ "id": 8489,
+ "nodeType": "Return",
+ "src": "6365:54:24"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 8493
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8493,
+ "mutability": "mutable",
+ "name": "signer",
+ "nameLocation": "6532:6:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8530,
+ "src": "6524:14:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8492,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6524:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8500,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8495,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8459,
+ "src": "6551:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8496,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8461,
+ "src": "6557:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ {
+ "id": 8497,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8463,
+ "src": "6560:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8498,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8465,
+ "src": "6563:1:24",
+ "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": 8494,
+ "name": "ecrecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -6,
+ "src": "6541:9:24",
+ "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": 8499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6541:24:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6524:41:24"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 8506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8501,
+ "name": "signer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8493,
+ "src": "6579:6:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6597:1:24",
+ "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": 8503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6589:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8502,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6589:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8505,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6589:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6579:20:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8520,
+ "nodeType": "IfStatement",
+ "src": "6575:113:24",
+ "trueBody": {
+ "id": 8519,
+ "nodeType": "Block",
+ "src": "6601:87:24",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6631:1:24",
+ "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": 8508,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6623:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 8507,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6623:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6623:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 8511,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "6635:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8512,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6648:16:24",
+ "memberName": "InvalidSignature",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8274,
+ "src": "6635:29:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6674:1:24",
+ "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": 8514,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6666:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 8513,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6666:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6666:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "id": 8517,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6622:55:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8474,
+ "id": 8518,
+ "nodeType": "Return",
+ "src": "6615:62:24"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 8521,
+ "name": "signer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8493,
+ "src": "6706:6:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 8522,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "6714:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8523,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6727:7:24",
+ "memberName": "NoError",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8273,
+ "src": "6714:20:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 8526,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6744:1:24",
+ "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": 8525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6736:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 8524,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6736:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8527,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6736:10:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "id": 8528,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6705:42:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "functionReturnParameters": 8474,
+ "id": 8529,
+ "nodeType": "Return",
+ "src": "6698:49:24"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8457,
+ "nodeType": "StructuredDocumentation",
+ "src": "5073:125:24",
+ "text": " @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately."
+ },
+ "id": 8531,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryRecover",
+ "nameLocation": "5212:10:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8466,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8459,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "5240:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5232:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8458,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5232:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8461,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "5260:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5254:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8460,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "5254:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8463,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "5279:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5271:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8462,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5271:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8465,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "5298:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5290:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8464,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5290:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5222:83:24"
+ },
+ "returnParameters": {
+ "id": 8474,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8468,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "5337:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5329:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8467,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5329:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8471,
+ "mutability": "mutable",
+ "name": "err",
+ "nameLocation": "5361:3:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5348:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8470,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8469,
+ "name": "RecoverError",
+ "nameLocations": [
+ "5348:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "5348:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "5348:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8473,
+ "mutability": "mutable",
+ "name": "errArg",
+ "nameLocation": "5374:6:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8531,
+ "src": "5366:14:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8472,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5366:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5328:53:24"
+ },
+ "scope": 8617,
+ "src": "5203:1551:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8566,
+ "nodeType": "Block",
+ "src": "6981:166:24",
+ "statements": [
+ {
+ "assignments": [
+ 8546,
+ 8549,
+ 8551
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8546,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "7000:9:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8566,
+ "src": "6992:17:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8545,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6992:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8549,
+ "mutability": "mutable",
+ "name": "error",
+ "nameLocation": "7024:5:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8566,
+ "src": "7011:18:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8548,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8547,
+ "name": "RecoverError",
+ "nameLocations": [
+ "7011:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "7011:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "7011:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8551,
+ "mutability": "mutable",
+ "name": "errorArg",
+ "nameLocation": "7039:8:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8566,
+ "src": "7031:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8550,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7031:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8558,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8553,
+ "name": "hash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8534,
+ "src": "7062:4:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8554,
+ "name": "v",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8536,
+ "src": "7068:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ {
+ "id": 8555,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8538,
+ "src": "7071:1:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "id": 8556,
+ "name": "s",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8540,
+ "src": "7074:1:24",
+ "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": 8552,
+ "name": "tryRecover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 8343,
+ 8423,
+ 8531
+ ],
+ "referencedDeclaration": 8531,
+ "src": "7051:10:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 8557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7051:25:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6991:85:24"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8560,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8549,
+ "src": "7098:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ {
+ "id": 8561,
+ "name": "errorArg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8551,
+ "src": "7105:8:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8559,
+ "name": "_throwError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8616,
+ "src": "7086:11:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$",
+ "typeString": "function (enum ECDSA.RecoverError,bytes32) pure"
+ }
+ },
+ "id": 8562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7086:28:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 8563,
+ "nodeType": "ExpressionStatement",
+ "src": "7086:28:24"
+ },
+ {
+ "expression": {
+ "id": 8564,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8546,
+ "src": "7131:9:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 8544,
+ "id": 8565,
+ "nodeType": "Return",
+ "src": "7124:16:24"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8532,
+ "nodeType": "StructuredDocumentation",
+ "src": "6760:122:24",
+ "text": " @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."
+ },
+ "id": 8567,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "recover",
+ "nameLocation": "6896:7:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8541,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8534,
+ "mutability": "mutable",
+ "name": "hash",
+ "nameLocation": "6912:4:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8567,
+ "src": "6904:12:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8533,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6904:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8536,
+ "mutability": "mutable",
+ "name": "v",
+ "nameLocation": "6924:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8567,
+ "src": "6918:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 8535,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "6918:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8538,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "6935:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8567,
+ "src": "6927:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8537,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6927:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8540,
+ "mutability": "mutable",
+ "name": "s",
+ "nameLocation": "6946:1:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8567,
+ "src": "6938:9:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8539,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6938:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6903:45:24"
+ },
+ "returnParameters": {
+ "id": 8544,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8543,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8567,
+ "src": "6972:7:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8542,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6972:7:24",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6971:9:24"
+ },
+ "scope": 8617,
+ "src": "6887:260:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8615,
+ "nodeType": "Block",
+ "src": "7352:460:24",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "id": 8579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8576,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8571,
+ "src": "7366:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 8577,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "7375:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7388:7:24",
+ "memberName": "NoError",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8273,
+ "src": "7375:20:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "src": "7366:29:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "id": 8585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8582,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8571,
+ "src": "7462:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 8583,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "7471:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8584,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7484:16:24",
+ "memberName": "InvalidSignature",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8274,
+ "src": "7471:29:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "src": "7462:38:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "id": 8593,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8590,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8571,
+ "src": "7567:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 8591,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "7576:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7589:22:24",
+ "memberName": "InvalidSignatureLength",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8275,
+ "src": "7576:35:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "src": "7567:44:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "id": 8605,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8602,
+ "name": "error",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8571,
+ "src": "7701:5:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 8603,
+ "name": "RecoverError",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8277,
+ "src": "7710:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 8604,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7723:17:24",
+ "memberName": "InvalidSignatureS",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8276,
+ "src": "7710:30:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "src": "7701:39:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8611,
+ "nodeType": "IfStatement",
+ "src": "7697:109:24",
+ "trueBody": {
+ "id": 8610,
+ "nodeType": "Block",
+ "src": "7742:64:24",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 8607,
+ "name": "errorArg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8573,
+ "src": "7786:8:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8606,
+ "name": "ECDSAInvalidSignatureS",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8290,
+ "src": "7763:22:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$",
+ "typeString": "function (bytes32) pure returns (error)"
+ }
+ },
+ "id": 8608,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7763:32:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 8609,
+ "nodeType": "RevertStatement",
+ "src": "7756:39:24"
+ }
+ ]
+ }
+ },
+ "id": 8612,
+ "nodeType": "IfStatement",
+ "src": "7563:243:24",
+ "trueBody": {
+ "id": 8601,
+ "nodeType": "Block",
+ "src": "7613:78:24",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 8597,
+ "name": "errorArg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8573,
+ "src": "7670:8:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 8596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7662:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 8595,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7662:7:24",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7662:17:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8594,
+ "name": "ECDSAInvalidSignatureLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8285,
+ "src": "7634:27:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 8599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7634:46:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 8600,
+ "nodeType": "RevertStatement",
+ "src": "7627:53:24"
+ }
+ ]
+ }
+ },
+ "id": 8613,
+ "nodeType": "IfStatement",
+ "src": "7458:348:24",
+ "trueBody": {
+ "id": 8589,
+ "nodeType": "Block",
+ "src": "7502:55:24",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 8586,
+ "name": "ECDSAInvalidSignature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8280,
+ "src": "7523:21:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 8587,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7523:23:24",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 8588,
+ "nodeType": "RevertStatement",
+ "src": "7516:30:24"
+ }
+ ]
+ }
+ },
+ "id": 8614,
+ "nodeType": "IfStatement",
+ "src": "7362:444:24",
+ "trueBody": {
+ "id": 8581,
+ "nodeType": "Block",
+ "src": "7397:55:24",
+ "statements": [
+ {
+ "functionReturnParameters": 8575,
+ "id": 8580,
+ "nodeType": "Return",
+ "src": "7411:7:24"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8568,
+ "nodeType": "StructuredDocumentation",
+ "src": "7153:122:24",
+ "text": " @dev Optionally reverts with the corresponding custom error according to the `error` argument provided."
+ },
+ "id": 8616,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_throwError",
+ "nameLocation": "7289:11:24",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8574,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8571,
+ "mutability": "mutable",
+ "name": "error",
+ "nameLocation": "7314:5:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8616,
+ "src": "7301:18:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 8570,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 8569,
+ "name": "RecoverError",
+ "nameLocations": [
+ "7301:12:24"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "7301:12:24"
+ },
+ "referencedDeclaration": 8277,
+ "src": "7301:12:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8573,
+ "mutability": "mutable",
+ "name": "errorArg",
+ "nameLocation": "7329:8:24",
+ "nodeType": "VariableDeclaration",
+ "scope": 8616,
+ "src": "7321:16:24",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8572,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7321:7:24",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7300:38:24"
+ },
+ "returnParameters": {
+ "id": 8575,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7352:0:24"
+ },
+ "scope": 8617,
+ "src": "7280:532:24",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ }
+ ],
+ "scope": 8618,
+ "src": "344:7470:24",
+ "usedErrors": [
+ 8280,
+ 8285,
+ 8290
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "112:7703:24"
+ },
+ "id": 24
+ },
+ "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
+ "exportedSymbols": {
+ "MessageHashUtils": [
+ 8703
+ ],
+ "Strings": [
+ 8269
+ ]
+ },
+ "id": 8704,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 8619,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "123:24:25"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
+ "file": "../Strings.sol",
+ "id": 8621,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 8704,
+ "sourceUnit": 8270,
+ "src": "149:39:25",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 8620,
+ "name": "Strings",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8269,
+ "src": "157:7:25",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "MessageHashUtils",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 8622,
+ "nodeType": "StructuredDocumentation",
+ "src": "190:330:25",
+ "text": " @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications."
+ },
+ "fullyImplemented": true,
+ "id": 8703,
+ "linearizedBaseContracts": [
+ 8703
+ ],
+ "name": "MessageHashUtils",
+ "nameLocation": "529:16:25",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 8631,
+ "nodeType": "Block",
+ "src": "1339:341:25",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1374:300:25",
+ "nodeType": "YulBlock",
+ "src": "1374:300:25",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1395:4:25",
+ "nodeType": "YulLiteral",
+ "src": "1395:4:25",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332",
+ "kind": "string",
+ "nativeSrc": "1401:34:25",
+ "nodeType": "YulLiteral",
+ "src": "1401:34:25",
+ "type": "",
+ "value": "\u0019Ethereum Signed Message:\n32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1388:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "1388:6:25"
+ },
+ "nativeSrc": "1388:48:25",
+ "nodeType": "YulFunctionCall",
+ "src": "1388:48:25"
+ },
+ "nativeSrc": "1388:48:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "1388:48:25"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1497:4:25",
+ "nodeType": "YulLiteral",
+ "src": "1497:4:25",
+ "type": "",
+ "value": "0x1c"
+ },
+ {
+ "name": "messageHash",
+ "nativeSrc": "1503:11:25",
+ "nodeType": "YulIdentifier",
+ "src": "1503:11:25"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1490:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "1490:6:25"
+ },
+ "nativeSrc": "1490:25:25",
+ "nodeType": "YulFunctionCall",
+ "src": "1490:25:25"
+ },
+ "nativeSrc": "1490:25:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "1490:25:25"
+ },
+ {
+ "nativeSrc": "1569:31:25",
+ "nodeType": "YulAssignment",
+ "src": "1569:31:25",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1589:4:25",
+ "nodeType": "YulLiteral",
+ "src": "1589:4:25",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1595:4:25",
+ "nodeType": "YulLiteral",
+ "src": "1595:4:25",
+ "type": "",
+ "value": "0x3c"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "1579:9:25",
+ "nodeType": "YulIdentifier",
+ "src": "1579:9:25"
+ },
+ "nativeSrc": "1579:21:25",
+ "nodeType": "YulFunctionCall",
+ "src": "1579:21:25"
+ },
+ "variableNames": [
+ {
+ "name": "digest",
+ "nativeSrc": "1569:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "1569:6:25"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8628,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1569:6:25",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8625,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1503:11:25",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8630,
+ "nodeType": "InlineAssembly",
+ "src": "1349:325:25"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8623,
+ "nodeType": "StructuredDocumentation",
+ "src": "552:690:25",
+ "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}."
+ },
+ "id": 8632,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toEthSignedMessageHash",
+ "nameLocation": "1256:22:25",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8626,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8625,
+ "mutability": "mutable",
+ "name": "messageHash",
+ "nameLocation": "1287:11:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8632,
+ "src": "1279:19:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8624,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1279:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1278:21:25"
+ },
+ "returnParameters": {
+ "id": 8629,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8628,
+ "mutability": "mutable",
+ "name": "digest",
+ "nameLocation": "1331:6:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8632,
+ "src": "1323:14:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8627,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1323:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1322:16:25"
+ },
+ "scope": 8703,
+ "src": "1247:433:25",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8657,
+ "nodeType": "Block",
+ "src": "2257:143:25",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a",
+ "id": 8644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2309:32:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4",
+ "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""
+ },
+ "value": "\u0019Ethereum Signed Message:\n"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 8649,
+ "name": "message",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8635,
+ "src": "2366:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 8650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2374:6:25",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2366:14:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 8647,
+ "name": "Strings",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8269,
+ "src": "2349:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Strings_$8269_$",
+ "typeString": "type(library Strings)"
+ }
+ },
+ "id": 8648,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2357:8:25",
+ "memberName": "toString",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6981,
+ "src": "2349:16:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (string memory)"
+ }
+ },
+ "id": 8651,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2349:32:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 8646,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2343:5:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 8645,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2343:5:25",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8652,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2343:39:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 8653,
+ "name": "message",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8635,
+ "src": "2384:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4",
+ "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 8642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2296:5:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 8641,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2296:5:25",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 8643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2302:6:25",
+ "memberName": "concat",
+ "nodeType": "MemberAccess",
+ "src": "2296:12:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 8654,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2296:96:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 8640,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2286:9:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 8655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2286:107:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 8639,
+ "id": 8656,
+ "nodeType": "Return",
+ "src": "2267:126:25"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8633,
+ "nodeType": "StructuredDocumentation",
+ "src": "1686:480:25",
+ "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}."
+ },
+ "id": 8658,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toEthSignedMessageHash",
+ "nameLocation": "2180:22:25",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8636,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8635,
+ "mutability": "mutable",
+ "name": "message",
+ "nameLocation": "2216:7:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8658,
+ "src": "2203:20:25",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8634,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2203:5:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2202:22:25"
+ },
+ "returnParameters": {
+ "id": 8639,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8638,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8658,
+ "src": "2248:7:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8637,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2248:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2247:9:25"
+ },
+ "scope": 8703,
+ "src": "2171:229:25",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8677,
+ "nodeType": "Block",
+ "src": "2854:80:25",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "1900",
+ "id": 8671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "hexString",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2898:10:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a",
+ "typeString": "literal_string hex\"1900\""
+ },
+ "value": "\u0019\u0000"
+ },
+ {
+ "id": 8672,
+ "name": "validator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8661,
+ "src": "2910:9:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 8673,
+ "name": "data",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8663,
+ "src": "2921:4:25",
+ "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": 8669,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "2881:3:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 8670,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2885:12:25",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "2881:16:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 8674,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2881:45:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 8668,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2871:9:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 8675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2871:56:25",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 8667,
+ "id": 8676,
+ "nodeType": "Return",
+ "src": "2864:63:25"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8659,
+ "nodeType": "StructuredDocumentation",
+ "src": "2406:332:25",
+ "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}."
+ },
+ "id": 8678,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toDataWithIntendedValidatorHash",
+ "nameLocation": "2752:31:25",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8661,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "2792:9:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8678,
+ "src": "2784:17:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8660,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2784:7:25",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8663,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "2816:4:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8678,
+ "src": "2803:17:25",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 8662,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2803:5:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2783:38:25"
+ },
+ "returnParameters": {
+ "id": 8667,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8666,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8678,
+ "src": "2845:7:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8665,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2845:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2844:9:25"
+ },
+ "scope": 8703,
+ "src": "2743:191:25",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8689,
+ "nodeType": "Block",
+ "src": "3216:216:25",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3251:175:25",
+ "nodeType": "YulBlock",
+ "src": "3251:175:25",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3272:4:25",
+ "nodeType": "YulLiteral",
+ "src": "3272:4:25",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "hexValue": "1900",
+ "kind": "string",
+ "nativeSrc": "3278:10:25",
+ "nodeType": "YulLiteral",
+ "src": "3278:10:25",
+ "type": "",
+ "value": "\u0019\u0000"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3265:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "3265:6:25"
+ },
+ "nativeSrc": "3265:24:25",
+ "nodeType": "YulFunctionCall",
+ "src": "3265:24:25"
+ },
+ "nativeSrc": "3265:24:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "3265:24:25"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3309:4:25",
+ "nodeType": "YulLiteral",
+ "src": "3309:4:25",
+ "type": "",
+ "value": "0x02"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3319:2:25",
+ "nodeType": "YulLiteral",
+ "src": "3319:2:25",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "validator",
+ "nativeSrc": "3323:9:25",
+ "nodeType": "YulIdentifier",
+ "src": "3323:9:25"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "3315:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "3315:3:25"
+ },
+ "nativeSrc": "3315:18:25",
+ "nodeType": "YulFunctionCall",
+ "src": "3315:18:25"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3302:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "3302:6:25"
+ },
+ "nativeSrc": "3302:32:25",
+ "nodeType": "YulFunctionCall",
+ "src": "3302:32:25"
+ },
+ "nativeSrc": "3302:32:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "3302:32:25"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3354:4:25",
+ "nodeType": "YulLiteral",
+ "src": "3354:4:25",
+ "type": "",
+ "value": "0x16"
+ },
+ {
+ "name": "messageHash",
+ "nativeSrc": "3360:11:25",
+ "nodeType": "YulIdentifier",
+ "src": "3360:11:25"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3347:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "3347:6:25"
+ },
+ "nativeSrc": "3347:25:25",
+ "nodeType": "YulFunctionCall",
+ "src": "3347:25:25"
+ },
+ "nativeSrc": "3347:25:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "3347:25:25"
+ },
+ {
+ "nativeSrc": "3385:31:25",
+ "nodeType": "YulAssignment",
+ "src": "3385:31:25",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3405:4:25",
+ "nodeType": "YulLiteral",
+ "src": "3405:4:25",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3411:4:25",
+ "nodeType": "YulLiteral",
+ "src": "3411:4:25",
+ "type": "",
+ "value": "0x36"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "3395:9:25",
+ "nodeType": "YulIdentifier",
+ "src": "3395:9:25"
+ },
+ "nativeSrc": "3395:21:25",
+ "nodeType": "YulFunctionCall",
+ "src": "3395:21:25"
+ },
+ "variableNames": [
+ {
+ "name": "digest",
+ "nativeSrc": "3385:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "3385:6:25"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8686,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3385:6:25",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8683,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3360:11:25",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8681,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3323:9:25",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8688,
+ "nodeType": "InlineAssembly",
+ "src": "3226:200:25"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8679,
+ "nodeType": "StructuredDocumentation",
+ "src": "2940:129:25",
+ "text": " @dev Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32."
+ },
+ "id": 8690,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toDataWithIntendedValidatorHash",
+ "nameLocation": "3083:31:25",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8684,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8681,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "3132:9:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8690,
+ "src": "3124:17:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 8680,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3124:7:25",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8683,
+ "mutability": "mutable",
+ "name": "messageHash",
+ "nameLocation": "3159:11:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8690,
+ "src": "3151:19:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8682,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3151:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3114:62:25"
+ },
+ "returnParameters": {
+ "id": 8687,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8686,
+ "mutability": "mutable",
+ "name": "digest",
+ "nameLocation": "3208:6:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8690,
+ "src": "3200:14:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8685,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3200:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3199:16:25"
+ },
+ "scope": 8703,
+ "src": "3074:358:25",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8701,
+ "nodeType": "Block",
+ "src": "3983:265:25",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4018:224:25",
+ "nodeType": "YulBlock",
+ "src": "4018:224:25",
+ "statements": [
+ {
+ "nativeSrc": "4032:22:25",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4032:22:25",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4049:4:25",
+ "nodeType": "YulLiteral",
+ "src": "4049:4:25",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "4043:5:25",
+ "nodeType": "YulIdentifier",
+ "src": "4043:5:25"
+ },
+ "nativeSrc": "4043:11:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4043:11:25"
+ },
+ "variables": [
+ {
+ "name": "ptr",
+ "nativeSrc": "4036:3:25",
+ "nodeType": "YulTypedName",
+ "src": "4036:3:25",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "4074:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4074:3:25"
+ },
+ {
+ "hexValue": "1901",
+ "kind": "string",
+ "nativeSrc": "4079:10:25",
+ "nodeType": "YulLiteral",
+ "src": "4079:10:25",
+ "type": "",
+ "value": "\u0019\u0001"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4067:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "4067:6:25"
+ },
+ "nativeSrc": "4067:23:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4067:23:25"
+ },
+ "nativeSrc": "4067:23:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "4067:23:25"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "4114:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4114:3:25"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4119:4:25",
+ "nodeType": "YulLiteral",
+ "src": "4119:4:25",
+ "type": "",
+ "value": "0x02"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4110:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4110:3:25"
+ },
+ "nativeSrc": "4110:14:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4110:14:25"
+ },
+ {
+ "name": "domainSeparator",
+ "nativeSrc": "4126:15:25",
+ "nodeType": "YulIdentifier",
+ "src": "4126:15:25"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4103:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "4103:6:25"
+ },
+ "nativeSrc": "4103:39:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4103:39:25"
+ },
+ "nativeSrc": "4103:39:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "4103:39:25"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "4166:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4166:3:25"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4171:4:25",
+ "nodeType": "YulLiteral",
+ "src": "4171:4:25",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4162:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4162:3:25"
+ },
+ "nativeSrc": "4162:14:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4162:14:25"
+ },
+ {
+ "name": "structHash",
+ "nativeSrc": "4178:10:25",
+ "nodeType": "YulIdentifier",
+ "src": "4178:10:25"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "4155:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "4155:6:25"
+ },
+ "nativeSrc": "4155:34:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4155:34:25"
+ },
+ "nativeSrc": "4155:34:25",
+ "nodeType": "YulExpressionStatement",
+ "src": "4155:34:25"
+ },
+ {
+ "nativeSrc": "4202:30:25",
+ "nodeType": "YulAssignment",
+ "src": "4202:30:25",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "4222:3:25",
+ "nodeType": "YulIdentifier",
+ "src": "4222:3:25"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4227:4:25",
+ "nodeType": "YulLiteral",
+ "src": "4227:4:25",
+ "type": "",
+ "value": "0x42"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "4212:9:25",
+ "nodeType": "YulIdentifier",
+ "src": "4212:9:25"
+ },
+ "nativeSrc": "4212:20:25",
+ "nodeType": "YulFunctionCall",
+ "src": "4212:20:25"
+ },
+ "variableNames": [
+ {
+ "name": "digest",
+ "nativeSrc": "4202:6:25",
+ "nodeType": "YulIdentifier",
+ "src": "4202:6:25"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8698,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4202:6:25",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8693,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4126:15:25",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8695,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4178:10:25",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8700,
+ "nodeType": "InlineAssembly",
+ "src": "3993:249:25"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8691,
+ "nodeType": "StructuredDocumentation",
+ "src": "3438:431:25",
+ "text": " @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}."
+ },
+ "id": 8702,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toTypedDataHash",
+ "nameLocation": "3883:15:25",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8696,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8693,
+ "mutability": "mutable",
+ "name": "domainSeparator",
+ "nameLocation": "3907:15:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8702,
+ "src": "3899:23:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8692,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3899:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8695,
+ "mutability": "mutable",
+ "name": "structHash",
+ "nameLocation": "3932:10:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8702,
+ "src": "3924:18:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8694,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3924:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3898:45:25"
+ },
+ "returnParameters": {
+ "id": 8699,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8698,
+ "mutability": "mutable",
+ "name": "digest",
+ "nameLocation": "3975:6:25",
+ "nodeType": "VariableDeclaration",
+ "scope": 8702,
+ "src": "3967:14:25",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 8697,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3967:7:25",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3966:16:25"
+ },
+ "scope": 8703,
+ "src": "3874:374:25",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 8704,
+ "src": "521:3729:25",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "123:4128:25"
+ },
+ "id": 25
+ },
+ "@openzeppelin/contracts/utils/introspection/ERC165.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
+ "exportedSymbols": {
+ "ERC165": [
+ 8727
+ ],
+ "IERC165": [
+ 8739
+ ]
+ },
+ "id": 8728,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 8705,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "114:24:26"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
+ "file": "./IERC165.sol",
+ "id": 8707,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 8728,
+ "sourceUnit": 8740,
+ "src": "140:38:26",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 8706,
+ "name": "IERC165",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8739,
+ "src": "148:7:26",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 8709,
+ "name": "IERC165",
+ "nameLocations": [
+ "688:7:26"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8739,
+ "src": "688:7:26"
+ },
+ "id": 8710,
+ "nodeType": "InheritanceSpecifier",
+ "src": "688:7:26"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 8708,
+ "nodeType": "StructuredDocumentation",
+ "src": "180:479:26",
+ "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"
+ },
+ "fullyImplemented": true,
+ "id": 8727,
+ "linearizedBaseContracts": [
+ 8727,
+ 8739
+ ],
+ "name": "ERC165",
+ "nameLocation": "678:6:26",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "baseFunctions": [
+ 8738
+ ],
+ "body": {
+ "id": 8725,
+ "nodeType": "Block",
+ "src": "845:64:26",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "id": 8723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8718,
+ "name": "interfaceId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8713,
+ "src": "862:11:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8720,
+ "name": "IERC165",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8739,
+ "src": "882:7:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC165_$8739_$",
+ "typeString": "type(contract IERC165)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_contract$_IERC165_$8739_$",
+ "typeString": "type(contract IERC165)"
+ }
+ ],
+ "id": 8719,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "877:4:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 8721,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "877:13:26",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$8739",
+ "typeString": "type(contract IERC165)"
+ }
+ },
+ "id": 8722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "891:11:26",
+ "memberName": "interfaceId",
+ "nodeType": "MemberAccess",
+ "src": "877:25:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "src": "862:40:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 8717,
+ "id": 8724,
+ "nodeType": "Return",
+ "src": "855:47:26"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8711,
+ "nodeType": "StructuredDocumentation",
+ "src": "702:56:26",
+ "text": " @dev See {IERC165-supportsInterface}."
+ },
+ "functionSelector": "01ffc9a7",
+ "id": 8726,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "772:17:26",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8714,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8713,
+ "mutability": "mutable",
+ "name": "interfaceId",
+ "nameLocation": "797:11:26",
+ "nodeType": "VariableDeclaration",
+ "scope": 8726,
+ "src": "790:18:26",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 8712,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "790:6:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "789:20:26"
+ },
+ "returnParameters": {
+ "id": 8717,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8716,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8726,
+ "src": "839:4:26",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8715,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "839:4:26",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "838:6:26"
+ },
+ "scope": 8727,
+ "src": "763:146:26",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ }
+ ],
+ "scope": 8728,
+ "src": "660:251:26",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "114:798:26"
+ },
+ "id": 26
+ },
+ "@openzeppelin/contracts/utils/introspection/IERC165.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
+ "exportedSymbols": {
+ "IERC165": [
+ 8739
+ ]
+ },
+ "id": 8740,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 8729,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "115:24:27"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 8730,
+ "nodeType": "StructuredDocumentation",
+ "src": "141:280:27",
+ "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."
+ },
+ "fullyImplemented": false,
+ "id": 8739,
+ "linearizedBaseContracts": [
+ 8739
+ ],
+ "name": "IERC165",
+ "nameLocation": "432:7:27",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 8731,
+ "nodeType": "StructuredDocumentation",
+ "src": "446:340:27",
+ "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."
+ },
+ "functionSelector": "01ffc9a7",
+ "id": 8738,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "800:17:27",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8734,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8733,
+ "mutability": "mutable",
+ "name": "interfaceId",
+ "nameLocation": "825:11:27",
+ "nodeType": "VariableDeclaration",
+ "scope": 8738,
+ "src": "818:18:27",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 8732,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "818:6:27",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "817:20:27"
+ },
+ "returnParameters": {
+ "id": 8737,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8736,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8738,
+ "src": "861:4:27",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8735,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "861:4:27",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "860:6:27"
+ },
+ "scope": 8739,
+ "src": "791:76:27",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 8740,
+ "src": "422:447:27",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "115:755:27"
+ },
+ "id": 27
+ },
+ "@openzeppelin/contracts/utils/math/Math.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol",
+ "exportedSymbols": {
+ "Math": [
+ 10360
+ ],
+ "Panic": [
+ 6613
+ ],
+ "SafeCast": [
+ 12125
+ ]
+ },
+ "id": 10361,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 8741,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "103:24:28"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Panic.sol",
+ "file": "../Panic.sol",
+ "id": 8743,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 10361,
+ "sourceUnit": 6614,
+ "src": "129:35:28",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 8742,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "137:5:28",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol",
+ "file": "./SafeCast.sol",
+ "id": 8745,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 10361,
+ "sourceUnit": 12126,
+ "src": "165:40:28",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 8744,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "173:8:28",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Math",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 8746,
+ "nodeType": "StructuredDocumentation",
+ "src": "207:73:28",
+ "text": " @dev Standard math utilities missing in the Solidity language."
+ },
+ "fullyImplemented": true,
+ "id": 10360,
+ "linearizedBaseContracts": [
+ 10360
+ ],
+ "name": "Math",
+ "nameLocation": "289:4:28",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "Math.Rounding",
+ "id": 8751,
+ "members": [
+ {
+ "id": 8747,
+ "name": "Floor",
+ "nameLocation": "324:5:28",
+ "nodeType": "EnumValue",
+ "src": "324:5:28"
+ },
+ {
+ "id": 8748,
+ "name": "Ceil",
+ "nameLocation": "367:4:28",
+ "nodeType": "EnumValue",
+ "src": "367:4:28"
+ },
+ {
+ "id": 8749,
+ "name": "Trunc",
+ "nameLocation": "409:5:28",
+ "nodeType": "EnumValue",
+ "src": "409:5:28"
+ },
+ {
+ "id": 8750,
+ "name": "Expand",
+ "nameLocation": "439:6:28",
+ "nodeType": "EnumValue",
+ "src": "439:6:28"
+ }
+ ],
+ "name": "Rounding",
+ "nameLocation": "305:8:28",
+ "nodeType": "EnumDefinition",
+ "src": "300:169:28"
+ },
+ {
+ "body": {
+ "id": 8764,
+ "nodeType": "Block",
+ "src": "731:112:28",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "766:71:28",
+ "nodeType": "YulBlock",
+ "src": "766:71:28",
+ "statements": [
+ {
+ "nativeSrc": "780:16:28",
+ "nodeType": "YulAssignment",
+ "src": "780:16:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "791:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "791:1:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "794:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "794:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "787:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "787:3:28"
+ },
+ "nativeSrc": "787:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "787:9:28"
+ },
+ "variableNames": [
+ {
+ "name": "low",
+ "nativeSrc": "780:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "780:3:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "809:18:28",
+ "nodeType": "YulAssignment",
+ "src": "809:18:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "low",
+ "nativeSrc": "820:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "820:3:28"
+ },
+ {
+ "name": "a",
+ "nativeSrc": "825:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "825:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "817:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "817:2:28"
+ },
+ "nativeSrc": "817:10:28",
+ "nodeType": "YulFunctionCall",
+ "src": "817:10:28"
+ },
+ "variableNames": [
+ {
+ "name": "high",
+ "nativeSrc": "809:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "809:4:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8754,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "791:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8754,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "825:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8756,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "794:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8759,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "809:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8761,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "780:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8761,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "820:3:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8763,
+ "nodeType": "InlineAssembly",
+ "src": "741:96:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8752,
+ "nodeType": "StructuredDocumentation",
+ "src": "475:163:28",
+ "text": " @dev Return the 512-bit addition of two uint256.\n The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low."
+ },
+ "id": 8765,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "add512",
+ "nameLocation": "652:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8757,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8754,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "667:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8765,
+ "src": "659:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8753,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "659:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8756,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "678:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8765,
+ "src": "670:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8755,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "670:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "658:22:28"
+ },
+ "returnParameters": {
+ "id": 8762,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8759,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "712:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8765,
+ "src": "704:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8758,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "704:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8761,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "726:3:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8765,
+ "src": "718:11:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8760,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "718:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "703:27:28"
+ },
+ "scope": 10360,
+ "src": "643:200:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8778,
+ "nodeType": "Block",
+ "src": "1115:462:28",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "1437:134:28",
+ "nodeType": "YulBlock",
+ "src": "1437:134:28",
+ "statements": [
+ {
+ "nativeSrc": "1451:30:28",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1451:30:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "1468:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "1468:1:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "1471:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "1471:1:28"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1478:1:28",
+ "nodeType": "YulLiteral",
+ "src": "1478:1:28",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "1474:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1474:3:28"
+ },
+ "nativeSrc": "1474:6:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1474:6:28"
+ }
+ ],
+ "functionName": {
+ "name": "mulmod",
+ "nativeSrc": "1461:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "1461:6:28"
+ },
+ "nativeSrc": "1461:20:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1461:20:28"
+ },
+ "variables": [
+ {
+ "name": "mm",
+ "nativeSrc": "1455:2:28",
+ "nodeType": "YulTypedName",
+ "src": "1455:2:28",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1494:16:28",
+ "nodeType": "YulAssignment",
+ "src": "1494:16:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "1505:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "1505:1:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "1508:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "1508:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "1501:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1501:3:28"
+ },
+ "nativeSrc": "1501:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1501:9:28"
+ },
+ "variableNames": [
+ {
+ "name": "low",
+ "nativeSrc": "1494:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1494:3:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1523:38:28",
+ "nodeType": "YulAssignment",
+ "src": "1523:38:28",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mm",
+ "nativeSrc": "1539:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "1539:2:28"
+ },
+ {
+ "name": "low",
+ "nativeSrc": "1543:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1543:3:28"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "1535:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1535:3:28"
+ },
+ "nativeSrc": "1535:12:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1535:12:28"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mm",
+ "nativeSrc": "1552:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "1552:2:28"
+ },
+ {
+ "name": "low",
+ "nativeSrc": "1556:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1556:3:28"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "1549:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "1549:2:28"
+ },
+ "nativeSrc": "1549:11:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1549:11:28"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "1531:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "1531:3:28"
+ },
+ "nativeSrc": "1531:30:28",
+ "nodeType": "YulFunctionCall",
+ "src": "1531:30:28"
+ },
+ "variableNames": [
+ {
+ "name": "high",
+ "nativeSrc": "1523:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "1523:4:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8768,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1468:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8768,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1505:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8770,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1471:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8770,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1508:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8773,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1523:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8775,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1494:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8775,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1543:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8775,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1556:3:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8777,
+ "nodeType": "InlineAssembly",
+ "src": "1412:159:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8766,
+ "nodeType": "StructuredDocumentation",
+ "src": "849:173:28",
+ "text": " @dev Return the 512-bit multiplication of two uint256.\n The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low."
+ },
+ "id": 8779,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mul512",
+ "nameLocation": "1036:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8771,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8768,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1051:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8779,
+ "src": "1043:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8767,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1043:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8770,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1062:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8779,
+ "src": "1054:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8769,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1054:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1042:22:28"
+ },
+ "returnParameters": {
+ "id": 8776,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8773,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "1096:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8779,
+ "src": "1088:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8772,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1088:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8775,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "1110:3:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8779,
+ "src": "1102:11:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8774,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1102:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1087:27:28"
+ },
+ "scope": 10360,
+ "src": "1027:550:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8813,
+ "nodeType": "Block",
+ "src": "1784:149:28",
+ "statements": [
+ {
+ "id": 8812,
+ "nodeType": "UncheckedBlock",
+ "src": "1794:133:28",
+ "statements": [
+ {
+ "assignments": [
+ 8792
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8792,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "1826:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8812,
+ "src": "1818:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8791,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1818:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8796,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8793,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8782,
+ "src": "1830:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 8794,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8784,
+ "src": "1834:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1830:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1818:17:28"
+ },
+ {
+ "expression": {
+ "id": 8801,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8797,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8787,
+ "src": "1849:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8798,
+ "name": "c",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8792,
+ "src": "1859:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 8799,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8782,
+ "src": "1864:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1859:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1849:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8802,
+ "nodeType": "ExpressionStatement",
+ "src": "1849:16:28"
+ },
+ {
+ "expression": {
+ "id": 8810,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8803,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8789,
+ "src": "1879:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8809,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8804,
+ "name": "c",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8792,
+ "src": "1888:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 8807,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8787,
+ "src": "1908:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 8805,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "1892:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 8806,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1901:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "1892:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 8808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1892:24:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1888:28:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1879:37:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 8811,
+ "nodeType": "ExpressionStatement",
+ "src": "1879:37:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8780,
+ "nodeType": "StructuredDocumentation",
+ "src": "1583:105:28",
+ "text": " @dev Returns the addition of two unsigned integers, with a success flag (no overflow)."
+ },
+ "id": 8814,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryAdd",
+ "nameLocation": "1702:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8785,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8782,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1717:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8814,
+ "src": "1709:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8781,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1709:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8784,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1728:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8814,
+ "src": "1720:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8783,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1720:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1708:22:28"
+ },
+ "returnParameters": {
+ "id": 8790,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8787,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "1759:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8814,
+ "src": "1754:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8786,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1754:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8789,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "1776:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8814,
+ "src": "1768:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8788,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1768:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1753:30:28"
+ },
+ "scope": 10360,
+ "src": "1693:240:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8848,
+ "nodeType": "Block",
+ "src": "2143:149:28",
+ "statements": [
+ {
+ "id": 8847,
+ "nodeType": "UncheckedBlock",
+ "src": "2153:133:28",
+ "statements": [
+ {
+ "assignments": [
+ 8827
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8827,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "2185:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8847,
+ "src": "2177:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8826,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2177:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8831,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8828,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8817,
+ "src": "2189:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 8829,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8819,
+ "src": "2193:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2189:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2177:17:28"
+ },
+ {
+ "expression": {
+ "id": 8836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8832,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8822,
+ "src": "2208:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8833,
+ "name": "c",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8827,
+ "src": "2218:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 8834,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8817,
+ "src": "2223:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2218:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "2208:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8837,
+ "nodeType": "ExpressionStatement",
+ "src": "2208:16:28"
+ },
+ {
+ "expression": {
+ "id": 8845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8838,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8824,
+ "src": "2238:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8839,
+ "name": "c",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8827,
+ "src": "2247:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 8842,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8822,
+ "src": "2267:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 8840,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "2251:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 8841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2260:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "2251:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 8843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2251:24:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2247:28:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2238:37:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 8846,
+ "nodeType": "ExpressionStatement",
+ "src": "2238:37:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8815,
+ "nodeType": "StructuredDocumentation",
+ "src": "1939:108:28",
+ "text": " @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow)."
+ },
+ "id": 8849,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "trySub",
+ "nameLocation": "2061:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8820,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8817,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "2076:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8849,
+ "src": "2068:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8816,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2068:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8819,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "2087:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8849,
+ "src": "2079:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8818,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2079:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2067:22:28"
+ },
+ "returnParameters": {
+ "id": 8825,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8822,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "2118:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8849,
+ "src": "2113:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8821,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2113:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8824,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "2135:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8849,
+ "src": "2127:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8823,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2127:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2112:30:28"
+ },
+ "scope": 10360,
+ "src": "2052:240:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8878,
+ "nodeType": "Block",
+ "src": "2505:391:28",
+ "statements": [
+ {
+ "id": 8877,
+ "nodeType": "UncheckedBlock",
+ "src": "2515:375:28",
+ "statements": [
+ {
+ "assignments": [
+ 8862
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8862,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "2547:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8877,
+ "src": "2539:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8861,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2539:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8866,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8863,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8852,
+ "src": "2551:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 8864,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8854,
+ "src": "2555:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2551:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2539:17:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "2595:188:28",
+ "nodeType": "YulBlock",
+ "src": "2595:188:28",
+ "statements": [
+ {
+ "nativeSrc": "2727:42:28",
+ "nodeType": "YulAssignment",
+ "src": "2727:42:28",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "c",
+ "nativeSrc": "2748:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "2748:1:28"
+ },
+ {
+ "name": "a",
+ "nativeSrc": "2751:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "2751:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "2744:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "2744:3:28"
+ },
+ "nativeSrc": "2744:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "2744:9:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "2755:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "2755:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "2741:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "2741:2:28"
+ },
+ "nativeSrc": "2741:16:28",
+ "nodeType": "YulFunctionCall",
+ "src": "2741:16:28"
+ },
+ {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "2766:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "2766:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "2759:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "2759:6:28"
+ },
+ "nativeSrc": "2759:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "2759:9:28"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "2738:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "2738:2:28"
+ },
+ "nativeSrc": "2738:31:28",
+ "nodeType": "YulFunctionCall",
+ "src": "2738:31:28"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "2727:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "2727:7:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8852,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2751:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8852,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2766:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8854,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2755:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8862,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2748:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8857,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2727:7:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8867,
+ "nodeType": "InlineAssembly",
+ "src": "2570:213:28"
+ },
+ {
+ "expression": {
+ "id": 8875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8868,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8859,
+ "src": "2842:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8874,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8869,
+ "name": "c",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8862,
+ "src": "2851:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 8872,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8857,
+ "src": "2871:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 8870,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "2855:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 8871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2864:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "2855:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 8873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2855:24:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2851:28:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2842:37:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 8876,
+ "nodeType": "ExpressionStatement",
+ "src": "2842:37:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8850,
+ "nodeType": "StructuredDocumentation",
+ "src": "2298:111:28",
+ "text": " @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow)."
+ },
+ "id": 8879,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryMul",
+ "nameLocation": "2423:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8855,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8852,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "2438:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8879,
+ "src": "2430:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8851,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2430:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8854,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "2449:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8879,
+ "src": "2441:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8853,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2441:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2429:22:28"
+ },
+ "returnParameters": {
+ "id": 8860,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8857,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "2480:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8879,
+ "src": "2475:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8856,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2475:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8859,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "2497:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8879,
+ "src": "2489:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8858,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2489:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2474:30:28"
+ },
+ "scope": 10360,
+ "src": "2414:482:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8899,
+ "nodeType": "Block",
+ "src": "3111:231:28",
+ "statements": [
+ {
+ "id": 8898,
+ "nodeType": "UncheckedBlock",
+ "src": "3121:215:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 8895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8891,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8887,
+ "src": "3145:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8892,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8884,
+ "src": "3155:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 8893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3159:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3155:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3145:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8896,
+ "nodeType": "ExpressionStatement",
+ "src": "3145:15:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "3199:127:28",
+ "nodeType": "YulBlock",
+ "src": "3199:127:28",
+ "statements": [
+ {
+ "nativeSrc": "3293:19:28",
+ "nodeType": "YulAssignment",
+ "src": "3293:19:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "3307:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "3307:1:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "3310:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "3310:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "3303:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "3303:3:28"
+ },
+ "nativeSrc": "3303:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "3303:9:28"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "3293:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "3293:6:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8882,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3307:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8884,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3310:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8889,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3293:6:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8897,
+ "nodeType": "InlineAssembly",
+ "src": "3174:152:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8880,
+ "nodeType": "StructuredDocumentation",
+ "src": "2902:113:28",
+ "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."
+ },
+ "id": 8900,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryDiv",
+ "nameLocation": "3029:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8885,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8882,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "3044:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8900,
+ "src": "3036:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8881,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3036:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8884,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "3055:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8900,
+ "src": "3047:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8883,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3047:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3035:22:28"
+ },
+ "returnParameters": {
+ "id": 8890,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8887,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "3086:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8900,
+ "src": "3081:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8886,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3081:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8889,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "3103:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8900,
+ "src": "3095:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8888,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3095:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3080:30:28"
+ },
+ "scope": 10360,
+ "src": "3020:322:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8920,
+ "nodeType": "Block",
+ "src": "3567:231:28",
+ "statements": [
+ {
+ "id": 8919,
+ "nodeType": "UncheckedBlock",
+ "src": "3577:215:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 8916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 8912,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8908,
+ "src": "3601:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 8915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 8913,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8905,
+ "src": "3611:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 8914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3615:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3611:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3601:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 8917,
+ "nodeType": "ExpressionStatement",
+ "src": "3601:15:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "3655:127:28",
+ "nodeType": "YulBlock",
+ "src": "3655:127:28",
+ "statements": [
+ {
+ "nativeSrc": "3749:19:28",
+ "nodeType": "YulAssignment",
+ "src": "3749:19:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "a",
+ "nativeSrc": "3763:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "3763:1:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "3766:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "3766:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "3759:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "3759:3:28"
+ },
+ "nativeSrc": "3759:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "3759:9:28"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "3749:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "3749:6:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 8903,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3763:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8905,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3766:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 8910,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3749:6:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 8918,
+ "nodeType": "InlineAssembly",
+ "src": "3630:152:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8901,
+ "nodeType": "StructuredDocumentation",
+ "src": "3348:123:28",
+ "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."
+ },
+ "id": 8921,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryMod",
+ "nameLocation": "3485:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8906,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8903,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "3500:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8921,
+ "src": "3492:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8902,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3492:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8905,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "3511:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8921,
+ "src": "3503:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8904,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3503:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3491:22:28"
+ },
+ "returnParameters": {
+ "id": 8911,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8908,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "3542:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8921,
+ "src": "3537:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8907,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3537:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8910,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "3559:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8921,
+ "src": "3551:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8909,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3551:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3536:30:28"
+ },
+ "scope": 10360,
+ "src": "3476:322:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8950,
+ "nodeType": "Block",
+ "src": "3989:122:28",
+ "statements": [
+ {
+ "assignments": [
+ 8932,
+ 8934
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8932,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "4005:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8950,
+ "src": "4000:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8931,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4000:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8934,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4022:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8950,
+ "src": "4014:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8933,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4014:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8939,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8936,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8924,
+ "src": "4039:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 8937,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8926,
+ "src": "4042:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8935,
+ "name": "tryAdd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8814,
+ "src": "4032:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 8938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4032:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3999:45:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8941,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8932,
+ "src": "4069:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 8942,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8934,
+ "src": "4078:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8945,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4091:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 8944,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4091:7:28",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ }
+ ],
+ "id": 8943,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "4086:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 8946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4086:13:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint256",
+ "typeString": "type(uint256)"
+ }
+ },
+ "id": 8947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "4100:3:28",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "4086:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8940,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "4061:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 8948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4061:43:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 8930,
+ "id": 8949,
+ "nodeType": "Return",
+ "src": "4054:50:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8922,
+ "nodeType": "StructuredDocumentation",
+ "src": "3804:103:28",
+ "text": " @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing."
+ },
+ "id": 8951,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "saturatingAdd",
+ "nameLocation": "3921:13:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8927,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8924,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "3943:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8951,
+ "src": "3935:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8923,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3935:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8926,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "3954:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8951,
+ "src": "3946:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8925,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3946:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3934:22:28"
+ },
+ "returnParameters": {
+ "id": 8930,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8929,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8951,
+ "src": "3980:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8928,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3980:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3979:9:28"
+ },
+ "scope": 10360,
+ "src": "3912:199:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 8970,
+ "nodeType": "Block",
+ "src": "4294:73:28",
+ "statements": [
+ {
+ "assignments": [
+ null,
+ 8962
+ ],
+ "declarations": [
+ null,
+ {
+ "constant": false,
+ "id": 8962,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4315:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8970,
+ "src": "4307:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8961,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4307:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8967,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8964,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8954,
+ "src": "4332:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 8965,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8956,
+ "src": "4335:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8963,
+ "name": "trySub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8849,
+ "src": "4325:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 8966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4325:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4304:33:28"
+ },
+ {
+ "expression": {
+ "id": 8968,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8962,
+ "src": "4354:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 8960,
+ "id": 8969,
+ "nodeType": "Return",
+ "src": "4347:13:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8952,
+ "nodeType": "StructuredDocumentation",
+ "src": "4117:95:28",
+ "text": " @dev Unsigned saturating subtraction, bounds to zero instead of overflowing."
+ },
+ "id": 8971,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "saturatingSub",
+ "nameLocation": "4226:13:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8957,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8954,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "4248:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8971,
+ "src": "4240:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8953,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4240:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8956,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "4259:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 8971,
+ "src": "4251:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8955,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4251:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4239:22:28"
+ },
+ "returnParameters": {
+ "id": 8960,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8959,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 8971,
+ "src": "4285:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8958,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4285:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4284:9:28"
+ },
+ "scope": 10360,
+ "src": "4217:150:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9000,
+ "nodeType": "Block",
+ "src": "4564:122:28",
+ "statements": [
+ {
+ "assignments": [
+ 8982,
+ 8984
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 8982,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "4580:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9000,
+ "src": "4575:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 8981,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4575:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8984,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "4597:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9000,
+ "src": "4589:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8983,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4589:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 8989,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 8986,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8974,
+ "src": "4614:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 8987,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8976,
+ "src": "4617:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8985,
+ "name": "tryMul",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8879,
+ "src": "4607:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (bool,uint256)"
+ }
+ },
+ "id": 8988,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4607:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4574:45:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8991,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8982,
+ "src": "4644:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 8992,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8984,
+ "src": "4653:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 8995,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4666:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 8994,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4666:7:28",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ }
+ ],
+ "id": 8993,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "4661:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 8996,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4661:13:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint256",
+ "typeString": "type(uint256)"
+ }
+ },
+ "id": 8997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "4675:3:28",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "4661:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 8990,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "4636:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 8998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4636:43:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 8980,
+ "id": 8999,
+ "nodeType": "Return",
+ "src": "4629:50:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 8972,
+ "nodeType": "StructuredDocumentation",
+ "src": "4373:109:28",
+ "text": " @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing."
+ },
+ "id": 9001,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "saturatingMul",
+ "nameLocation": "4496:13:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8977,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8974,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "4518:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9001,
+ "src": "4510:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8973,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4510:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 8976,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "4529:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9001,
+ "src": "4521:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8975,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4521:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4509:22:28"
+ },
+ "returnParameters": {
+ "id": 8980,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 8979,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9001,
+ "src": "4555:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8978,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4555:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4554:9:28"
+ },
+ "scope": 10360,
+ "src": "4487:199:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9027,
+ "nodeType": "Block",
+ "src": "5158:207:28",
+ "statements": [
+ {
+ "id": 9026,
+ "nodeType": "UncheckedBlock",
+ "src": "5168:191:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9013,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9008,
+ "src": "5306:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9014,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9006,
+ "src": "5312:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 9015,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9008,
+ "src": "5316:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5312:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9017,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5311:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 9020,
+ "name": "condition",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9004,
+ "src": "5337:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9018,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "5321:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5330:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "5321:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5321:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5311:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9023,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5310:38:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5306:42:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9012,
+ "id": 9025,
+ "nodeType": "Return",
+ "src": "5299:49:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9002,
+ "nodeType": "StructuredDocumentation",
+ "src": "4692:374:28",
+ "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."
+ },
+ "id": 9028,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ternary",
+ "nameLocation": "5080:7:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9009,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9004,
+ "mutability": "mutable",
+ "name": "condition",
+ "nameLocation": "5093:9:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9028,
+ "src": "5088:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9003,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5088:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9006,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "5112:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9028,
+ "src": "5104:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9005,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5104:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9008,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "5123:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9028,
+ "src": "5115:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9007,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5115:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5087:38:28"
+ },
+ "returnParameters": {
+ "id": 9012,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9011,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9028,
+ "src": "5149:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9010,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5149:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5148:9:28"
+ },
+ "scope": 10360,
+ "src": "5071:294:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9046,
+ "nodeType": "Block",
+ "src": "5502:44:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9041,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9039,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9031,
+ "src": "5527:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 9040,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9033,
+ "src": "5531:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5527:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 9042,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9031,
+ "src": "5534:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9043,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9033,
+ "src": "5537:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9038,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "5519:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5519:20:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9037,
+ "id": 9045,
+ "nodeType": "Return",
+ "src": "5512:27:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9029,
+ "nodeType": "StructuredDocumentation",
+ "src": "5371:59:28",
+ "text": " @dev Returns the largest of two numbers."
+ },
+ "id": 9047,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "max",
+ "nameLocation": "5444:3:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9034,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9031,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "5456:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9047,
+ "src": "5448:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9030,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5448:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9033,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "5467:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9047,
+ "src": "5459:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9032,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5459:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5447:22:28"
+ },
+ "returnParameters": {
+ "id": 9037,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9036,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9047,
+ "src": "5493:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9035,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5493:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5492:9:28"
+ },
+ "scope": 10360,
+ "src": "5435:111:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9065,
+ "nodeType": "Block",
+ "src": "5684:44:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9060,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9058,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9050,
+ "src": "5709:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 9059,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9052,
+ "src": "5713:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5709:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 9061,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9050,
+ "src": "5716:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9062,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9052,
+ "src": "5719:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9057,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "5701:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5701:20:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9056,
+ "id": 9064,
+ "nodeType": "Return",
+ "src": "5694:27:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9048,
+ "nodeType": "StructuredDocumentation",
+ "src": "5552:60:28",
+ "text": " @dev Returns the smallest of two numbers."
+ },
+ "id": 9066,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "min",
+ "nameLocation": "5626:3:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9053,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9050,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "5638:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9066,
+ "src": "5630:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9049,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5630:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9052,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "5649:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9066,
+ "src": "5641:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9051,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5641:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5629:22:28"
+ },
+ "returnParameters": {
+ "id": 9056,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9055,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9066,
+ "src": "5675:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9054,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5675:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5674:9:28"
+ },
+ "scope": 10360,
+ "src": "5617:111:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9088,
+ "nodeType": "Block",
+ "src": "5912:82:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9076,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9069,
+ "src": "5967:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "id": 9077,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9071,
+ "src": "5971:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5967:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9079,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5966:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9080,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9069,
+ "src": "5977:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 9081,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9071,
+ "src": "5981:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5977:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9083,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5976:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 9084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5986:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "5976:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5966:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9075,
+ "id": 9087,
+ "nodeType": "Return",
+ "src": "5959:28:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9067,
+ "nodeType": "StructuredDocumentation",
+ "src": "5734:102:28",
+ "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero."
+ },
+ "id": 9089,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "average",
+ "nameLocation": "5850:7:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9072,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9069,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "5866:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9089,
+ "src": "5858:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9068,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5858:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9071,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "5877:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9089,
+ "src": "5869:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9070,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5869:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5857:22:28"
+ },
+ "returnParameters": {
+ "id": 9075,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9074,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9089,
+ "src": "5903:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9073,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5903:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5902:9:28"
+ },
+ "scope": 10360,
+ "src": "5841:153:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9129,
+ "nodeType": "Block",
+ "src": "6286:633:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9099,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9094,
+ "src": "6300:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6305:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "6300:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9110,
+ "nodeType": "IfStatement",
+ "src": "6296:150:28",
+ "trueBody": {
+ "id": 9109,
+ "nodeType": "Block",
+ "src": "6308:138:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 9105,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "6412:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9106,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6418:16:28",
+ "memberName": "DIVISION_BY_ZERO",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6580,
+ "src": "6412:22:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9102,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "6400:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6406:5:28",
+ "memberName": "panic",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6612,
+ "src": "6400:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
+ "typeString": "function (uint256) pure"
+ }
+ },
+ "id": 9107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6400:35:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9108,
+ "nodeType": "ExpressionStatement",
+ "src": "6400:35:28"
+ }
+ ]
+ }
+ },
+ {
+ "id": 9128,
+ "nodeType": "UncheckedBlock",
+ "src": "6829:84:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9126,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9113,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9092,
+ "src": "6876:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6880:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "6876:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9111,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "6860:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6869:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "6860:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6860:22:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9122,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9119,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9117,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9092,
+ "src": "6887:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9118,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6891:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6887:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9120,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6886:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9121,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9094,
+ "src": "6896:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6886:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9123,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6900:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6886:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9125,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6885:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6860:42:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9098,
+ "id": 9127,
+ "nodeType": "Return",
+ "src": "6853:49:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9090,
+ "nodeType": "StructuredDocumentation",
+ "src": "6000:210:28",
+ "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."
+ },
+ "id": 9130,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ceilDiv",
+ "nameLocation": "6224:7:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9095,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9092,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "6240:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9130,
+ "src": "6232:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9091,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6232:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9094,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "6251:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9130,
+ "src": "6243:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9093,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6243:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6231:22:28"
+ },
+ "returnParameters": {
+ "id": 9098,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9097,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9130,
+ "src": "6277:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9096,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6277:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6276:9:28"
+ },
+ "scope": 10360,
+ "src": "6215:704:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9265,
+ "nodeType": "Block",
+ "src": "7340:3585:28",
+ "statements": [
+ {
+ "id": 9264,
+ "nodeType": "UncheckedBlock",
+ "src": "7350:3569:28",
+ "statements": [
+ {
+ "assignments": [
+ 9143,
+ 9145
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9143,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "7383:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9264,
+ "src": "7375:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9142,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7375:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9145,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "7397:3:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9264,
+ "src": "7389:11:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9144,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7389:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9150,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 9147,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9133,
+ "src": "7411:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9148,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9135,
+ "src": "7414:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9146,
+ "name": "mul512",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8779,
+ "src": "7404:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256,uint256)"
+ }
+ },
+ "id": 9149,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7404:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7374:42:28"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9153,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9151,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9143,
+ "src": "7498:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9152,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7506:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "7498:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9159,
+ "nodeType": "IfStatement",
+ "src": "7494:365:28",
+ "trueBody": {
+ "id": 9158,
+ "nodeType": "Block",
+ "src": "7509:350:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9154,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9145,
+ "src": "7827:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9155,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "7833:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7827:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9141,
+ "id": 9157,
+ "nodeType": "Return",
+ "src": "7820:24:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9160,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "7969:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 9161,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9143,
+ "src": "7984:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7969:19:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9178,
+ "nodeType": "IfStatement",
+ "src": "7965:142:28",
+ "trueBody": {
+ "id": 9177,
+ "nodeType": "Block",
+ "src": "7990:117:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9167,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "8028:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8043:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "8028:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "expression": {
+ "id": 9170,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "8046:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8052:16:28",
+ "memberName": "DIVISION_BY_ZERO",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6580,
+ "src": "8046:22:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 9172,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "8070:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8076:14:28",
+ "memberName": "UNDER_OVERFLOW",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6576,
+ "src": "8070:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9166,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "8020:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8020:71:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9163,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "8008:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9165,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8014:5:28",
+ "memberName": "panic",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6612,
+ "src": "8008:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
+ "typeString": "function (uint256) pure"
+ }
+ },
+ "id": 9175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8008:84:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9176,
+ "nodeType": "ExpressionStatement",
+ "src": "8008:84:28"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 9180
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9180,
+ "mutability": "mutable",
+ "name": "remainder",
+ "nameLocation": "8367:9:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9264,
+ "src": "8359:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9179,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8359:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9181,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8359:17:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "8415:283:28",
+ "nodeType": "YulBlock",
+ "src": "8415:283:28",
+ "statements": [
+ {
+ "nativeSrc": "8484:38:28",
+ "nodeType": "YulAssignment",
+ "src": "8484:38:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nativeSrc": "8504:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "8504:1:28"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "8507:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "8507:1:28"
+ },
+ {
+ "name": "denominator",
+ "nativeSrc": "8510:11:28",
+ "nodeType": "YulIdentifier",
+ "src": "8510:11:28"
+ }
+ ],
+ "functionName": {
+ "name": "mulmod",
+ "nativeSrc": "8497:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "8497:6:28"
+ },
+ "nativeSrc": "8497:25:28",
+ "nodeType": "YulFunctionCall",
+ "src": "8497:25:28"
+ },
+ "variableNames": [
+ {
+ "name": "remainder",
+ "nativeSrc": "8484:9:28",
+ "nodeType": "YulIdentifier",
+ "src": "8484:9:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8604:37:28",
+ "nodeType": "YulAssignment",
+ "src": "8604:37:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "high",
+ "nativeSrc": "8616:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "8616:4:28"
+ },
+ {
+ "arguments": [
+ {
+ "name": "remainder",
+ "nativeSrc": "8625:9:28",
+ "nodeType": "YulIdentifier",
+ "src": "8625:9:28"
+ },
+ {
+ "name": "low",
+ "nativeSrc": "8636:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "8636:3:28"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "8622:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "8622:2:28"
+ },
+ "nativeSrc": "8622:18:28",
+ "nodeType": "YulFunctionCall",
+ "src": "8622:18:28"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8612:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "8612:3:28"
+ },
+ "nativeSrc": "8612:29:28",
+ "nodeType": "YulFunctionCall",
+ "src": "8612:29:28"
+ },
+ "variableNames": [
+ {
+ "name": "high",
+ "nativeSrc": "8604:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "8604:4:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8658:26:28",
+ "nodeType": "YulAssignment",
+ "src": "8658:26:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "low",
+ "nativeSrc": "8669:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "8669:3:28"
+ },
+ {
+ "name": "remainder",
+ "nativeSrc": "8674:9:28",
+ "nodeType": "YulIdentifier",
+ "src": "8674:9:28"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8665:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "8665:3:28"
+ },
+ "nativeSrc": "8665:19:28",
+ "nodeType": "YulFunctionCall",
+ "src": "8665:19:28"
+ },
+ "variableNames": [
+ {
+ "name": "low",
+ "nativeSrc": "8658:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "8658:3:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 9137,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8510:11:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9143,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8604:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9143,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8616:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9145,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8636:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9145,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8658:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9145,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8669:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9180,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8484:9:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9180,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8625:9:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9180,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8674:9:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9133,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8504:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9135,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8507:1:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 9182,
+ "nodeType": "InlineAssembly",
+ "src": "8390:308:28"
+ },
+ {
+ "assignments": [
+ 9184
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9184,
+ "mutability": "mutable",
+ "name": "twos",
+ "nameLocation": "8910:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9264,
+ "src": "8902:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9183,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8902:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9191,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9185,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "8917:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9188,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "30",
+ "id": 9186,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8932:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 9187,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "8936:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8932:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9189,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "8931:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8917:31:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8902:46:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "8987:359:28",
+ "nodeType": "YulBlock",
+ "src": "8987:359:28",
+ "statements": [
+ {
+ "nativeSrc": "9052:37:28",
+ "nodeType": "YulAssignment",
+ "src": "9052:37:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "denominator",
+ "nativeSrc": "9071:11:28",
+ "nodeType": "YulIdentifier",
+ "src": "9071:11:28"
+ },
+ {
+ "name": "twos",
+ "nativeSrc": "9084:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "9084:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "9067:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9067:3:28"
+ },
+ "nativeSrc": "9067:22:28",
+ "nodeType": "YulFunctionCall",
+ "src": "9067:22:28"
+ },
+ "variableNames": [
+ {
+ "name": "denominator",
+ "nativeSrc": "9052:11:28",
+ "nodeType": "YulIdentifier",
+ "src": "9052:11:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "9153:21:28",
+ "nodeType": "YulAssignment",
+ "src": "9153:21:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "low",
+ "nativeSrc": "9164:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9164:3:28"
+ },
+ {
+ "name": "twos",
+ "nativeSrc": "9169:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "9169:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "9160:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9160:3:28"
+ },
+ "nativeSrc": "9160:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "9160:14:28"
+ },
+ "variableNames": [
+ {
+ "name": "low",
+ "nativeSrc": "9153:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9153:3:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "9293:39:28",
+ "nodeType": "YulAssignment",
+ "src": "9293:39:28",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9313:1:28",
+ "nodeType": "YulLiteral",
+ "src": "9313:1:28",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "twos",
+ "nativeSrc": "9316:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "9316:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "9309:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9309:3:28"
+ },
+ "nativeSrc": "9309:12:28",
+ "nodeType": "YulFunctionCall",
+ "src": "9309:12:28"
+ },
+ {
+ "name": "twos",
+ "nativeSrc": "9323:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "9323:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "9305:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9305:3:28"
+ },
+ "nativeSrc": "9305:23:28",
+ "nodeType": "YulFunctionCall",
+ "src": "9305:23:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9330:1:28",
+ "nodeType": "YulLiteral",
+ "src": "9330:1:28",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9301:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "9301:3:28"
+ },
+ "nativeSrc": "9301:31:28",
+ "nodeType": "YulFunctionCall",
+ "src": "9301:31:28"
+ },
+ "variableNames": [
+ {
+ "name": "twos",
+ "nativeSrc": "9293:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "9293:4:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 9137,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9052:11:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9137,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9071:11:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9145,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9153:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9145,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9164:3:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9084:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9169:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9293:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9316:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9323:4:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 9192,
+ "nodeType": "InlineAssembly",
+ "src": "8962:384:28"
+ },
+ {
+ "expression": {
+ "id": 9197,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9193,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9145,
+ "src": "9409:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9196,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9194,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9143,
+ "src": "9416:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9195,
+ "name": "twos",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9184,
+ "src": "9423:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9416:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9409:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9198,
+ "nodeType": "ExpressionStatement",
+ "src": "9409:18:28"
+ },
+ {
+ "assignments": [
+ 9200
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9200,
+ "mutability": "mutable",
+ "name": "inverse",
+ "nameLocation": "9770:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9264,
+ "src": "9762:15:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9199,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9762:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9207,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9206,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9203,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "33",
+ "id": 9201,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9781:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9202,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "9785:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9781:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9204,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9780:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 9205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9800:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "9780:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9762:39:28"
+ },
+ {
+ "expression": {
+ "id": 9214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9208,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10018:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10029:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9210,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10033:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9211,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10047:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10033:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10029:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10018:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9215,
+ "nodeType": "ExpressionStatement",
+ "src": "10018:36:28"
+ },
+ {
+ "expression": {
+ "id": 9222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9216,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10088:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10099:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9218,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10103:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9219,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10117:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10103:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10099:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10088:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9223,
+ "nodeType": "ExpressionStatement",
+ "src": "10088:36:28"
+ },
+ {
+ "expression": {
+ "id": 9230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9224,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10160:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9225,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10171:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9226,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10175:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9227,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10189:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10175:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10171:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10160:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9231,
+ "nodeType": "ExpressionStatement",
+ "src": "10160:36:28"
+ },
+ {
+ "expression": {
+ "id": 9238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9232,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10231:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9233,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10242:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9234,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10246:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9235,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10260:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10246:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10242:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10231:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9239,
+ "nodeType": "ExpressionStatement",
+ "src": "10231:36:28"
+ },
+ {
+ "expression": {
+ "id": 9246,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9240,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10304:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10315:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9244,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9242,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10319:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9243,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10333:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10319:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10315:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10304:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9247,
+ "nodeType": "ExpressionStatement",
+ "src": "10304:36:28"
+ },
+ {
+ "expression": {
+ "id": 9254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9248,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10378:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "*=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32",
+ "id": 9249,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10389:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9250,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9137,
+ "src": "10393:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9251,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10407:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10393:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10389:25:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10378:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9255,
+ "nodeType": "ExpressionStatement",
+ "src": "10378:36:28"
+ },
+ {
+ "expression": {
+ "id": 9260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9256,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9140,
+ "src": "10859:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9257,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9145,
+ "src": "10868:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9258,
+ "name": "inverse",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9200,
+ "src": "10874:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10868:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10859:22:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9261,
+ "nodeType": "ExpressionStatement",
+ "src": "10859:22:28"
+ },
+ {
+ "expression": {
+ "id": 9262,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9140,
+ "src": "10902:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9141,
+ "id": 9263,
+ "nodeType": "Return",
+ "src": "10895:13:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9131,
+ "nodeType": "StructuredDocumentation",
+ "src": "6925:312:28",
+ "text": " @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."
+ },
+ "id": 9266,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mulDiv",
+ "nameLocation": "7251:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9138,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9133,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "7266:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9266,
+ "src": "7258:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7258:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9135,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "7277:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9266,
+ "src": "7269:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9134,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7269:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9137,
+ "mutability": "mutable",
+ "name": "denominator",
+ "nameLocation": "7288:11:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9266,
+ "src": "7280:19:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9136,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7280:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7257:43:28"
+ },
+ "returnParameters": {
+ "id": 9141,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9140,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "7332:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9266,
+ "src": "7324:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9139,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7324:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7323:16:28"
+ },
+ "scope": 10360,
+ "src": "7242:3683:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9302,
+ "nodeType": "Block",
+ "src": "11164:128:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9282,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9269,
+ "src": "11188:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9283,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9271,
+ "src": "11191:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9284,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9273,
+ "src": "11194:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9281,
+ "name": "mulDiv",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 9266,
+ 9303
+ ],
+ "referencedDeclaration": 9266,
+ "src": "11181:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11181:25:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 9298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9289,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9276,
+ "src": "11242:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 9288,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "11225:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 9290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11225:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9292,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9269,
+ "src": "11262:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9293,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9271,
+ "src": "11265:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9294,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9273,
+ "src": "11268:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9291,
+ "name": "mulmod",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -16,
+ "src": "11255:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11255:25:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11283:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "11255:29:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "11225:59:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9286,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "11209:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9287,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11218:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "11209:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11209:76:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11181:104:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9280,
+ "id": 9301,
+ "nodeType": "Return",
+ "src": "11174:111:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9267,
+ "nodeType": "StructuredDocumentation",
+ "src": "10931:118:28",
+ "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction."
+ },
+ "id": 9303,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mulDiv",
+ "nameLocation": "11063:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9277,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9269,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "11078:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9303,
+ "src": "11070:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9268,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11070:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9271,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "11089:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9303,
+ "src": "11081:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9270,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11081:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9273,
+ "mutability": "mutable",
+ "name": "denominator",
+ "nameLocation": "11100:11:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9303,
+ "src": "11092:19:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9272,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11092:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9276,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "11122:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9303,
+ "src": "11113:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 9275,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 9274,
+ "name": "Rounding",
+ "nameLocations": [
+ "11113:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "11113:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "11113:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11069:62:28"
+ },
+ "returnParameters": {
+ "id": 9280,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9279,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9303,
+ "src": "11155:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9278,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11155:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11154:9:28"
+ },
+ "scope": 10360,
+ "src": "11054:238:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9352,
+ "nodeType": "Block",
+ "src": "11500:245:28",
+ "statements": [
+ {
+ "id": 9351,
+ "nodeType": "UncheckedBlock",
+ "src": "11510:229:28",
+ "statements": [
+ {
+ "assignments": [
+ 9316,
+ 9318
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9316,
+ "mutability": "mutable",
+ "name": "high",
+ "nameLocation": "11543:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9351,
+ "src": "11535:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9315,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11535:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9318,
+ "mutability": "mutable",
+ "name": "low",
+ "nameLocation": "11557:3:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9351,
+ "src": "11549:11:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9317,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11549:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9323,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 9320,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9306,
+ "src": "11571:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9321,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9308,
+ "src": "11574:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9319,
+ "name": "mul512",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8779,
+ "src": "11564:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256,uint256)"
+ }
+ },
+ "id": 9322,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11564:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11534:42:28"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9328,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9324,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9316,
+ "src": "11594:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9327,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11602:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "id": 9326,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9310,
+ "src": "11607:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "11602:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11594:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9337,
+ "nodeType": "IfStatement",
+ "src": "11590:86:28",
+ "trueBody": {
+ "id": 9336,
+ "nodeType": "Block",
+ "src": "11610:66:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 9332,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "11640:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9333,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "11646:14:28",
+ "memberName": "UNDER_OVERFLOW",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6576,
+ "src": "11640:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9329,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "11628:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11634:5:28",
+ "memberName": "panic",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6612,
+ "src": "11628:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
+ "typeString": "function (uint256) pure"
+ }
+ },
+ "id": 9334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11628:33:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9335,
+ "nodeType": "ExpressionStatement",
+ "src": "11628:33:28"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9338,
+ "name": "high",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9316,
+ "src": "11697:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "id": 9341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "323536",
+ "id": 9339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11706:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ },
+ "value": "256"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 9340,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9310,
+ "src": "11712:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "11706:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ }
+ ],
+ "id": 9342,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11705:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "11697:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9344,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11696:19:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9345,
+ "name": "low",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9318,
+ "src": "11719:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 9346,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9310,
+ "src": "11726:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "11719:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9348,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11718:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11696:32:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9314,
+ "id": 9350,
+ "nodeType": "Return",
+ "src": "11689:39:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9304,
+ "nodeType": "StructuredDocumentation",
+ "src": "11298:111:28",
+ "text": " @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256."
+ },
+ "id": 9353,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mulShr",
+ "nameLocation": "11423:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9311,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9306,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "11438:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9353,
+ "src": "11430:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9305,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11430:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9308,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "11449:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9353,
+ "src": "11441:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9307,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11441:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9310,
+ "mutability": "mutable",
+ "name": "n",
+ "nameLocation": "11458:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9353,
+ "src": "11452:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 9309,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "11452:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11429:31:28"
+ },
+ "returnParameters": {
+ "id": 9314,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9313,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "11492:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9353,
+ "src": "11484:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9312,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11484:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11483:16:28"
+ },
+ "scope": 10360,
+ "src": "11414:331:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9391,
+ "nodeType": "Block",
+ "src": "11963:113:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9369,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9356,
+ "src": "11987:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9370,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9358,
+ "src": "11990:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9371,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9360,
+ "src": "11993:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ ],
+ "id": 9368,
+ "name": "mulShr",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 9353,
+ 9392
+ ],
+ "referencedDeclaration": 9353,
+ "src": "11980:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint8) pure returns (uint256)"
+ }
+ },
+ "id": 9372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11980:15:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 9387,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9376,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9363,
+ "src": "12031:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 9375,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "12014:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 9377,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12014:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9386,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9379,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9356,
+ "src": "12051:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9380,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9358,
+ "src": "12054:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9381,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12057:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "id": 9382,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9360,
+ "src": "12062:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "12057:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9378,
+ "name": "mulmod",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -16,
+ "src": "12044:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12044:20:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9385,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12067:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12044:24:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "12014:54:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9373,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "11998:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9374,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12007:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "11998:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11998:71:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11980:89:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9367,
+ "id": 9390,
+ "nodeType": "Return",
+ "src": "11973:96:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9354,
+ "nodeType": "StructuredDocumentation",
+ "src": "11751:109:28",
+ "text": " @dev Calculates x * y >> n with full precision, following the selected rounding direction."
+ },
+ "id": 9392,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mulShr",
+ "nameLocation": "11874:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9364,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9356,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "11889:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9392,
+ "src": "11881:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9355,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11881:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9358,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "11900:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9392,
+ "src": "11892:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9357,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11892:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9360,
+ "mutability": "mutable",
+ "name": "n",
+ "nameLocation": "11909:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9392,
+ "src": "11903:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 9359,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "11903:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9363,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "11921:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9392,
+ "src": "11912:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 9362,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 9361,
+ "name": "Rounding",
+ "nameLocations": [
+ "11912:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "11912:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "11912:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11880:50:28"
+ },
+ "returnParameters": {
+ "id": 9367,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9366,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9392,
+ "src": "11954:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9365,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11954:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11953:9:28"
+ },
+ "scope": 10360,
+ "src": "11865:211:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9488,
+ "nodeType": "Block",
+ "src": "12710:1849:28",
+ "statements": [
+ {
+ "id": 9487,
+ "nodeType": "UncheckedBlock",
+ "src": "12720:1833:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9404,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9402,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9397,
+ "src": "12748:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12753:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12748:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9407,
+ "nodeType": "IfStatement",
+ "src": "12744:20:28",
+ "trueBody": {
+ "expression": {
+ "hexValue": "30",
+ "id": 9405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12763:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 9401,
+ "id": 9406,
+ "nodeType": "Return",
+ "src": "12756:8:28"
+ }
+ },
+ {
+ "assignments": [
+ 9409
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9409,
+ "mutability": "mutable",
+ "name": "remainder",
+ "nameLocation": "13243:9:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9487,
+ "src": "13235:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9408,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13235:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9413,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9412,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9410,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9395,
+ "src": "13255:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 9411,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9397,
+ "src": "13259:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13255:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13235:25:28"
+ },
+ {
+ "assignments": [
+ 9415
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9415,
+ "mutability": "mutable",
+ "name": "gcd",
+ "nameLocation": "13282:3:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9487,
+ "src": "13274:11:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9414,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13274:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9417,
+ "initialValue": {
+ "id": 9416,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9397,
+ "src": "13288:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13274:15:28"
+ },
+ {
+ "assignments": [
+ 9419
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9419,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "13432:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9487,
+ "src": "13425:8:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 9418,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13425:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9421,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 9420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13436:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13425:12:28"
+ },
+ {
+ "assignments": [
+ 9423
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9423,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "13458:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9487,
+ "src": "13451:8:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 9422,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13451:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9425,
+ "initialValue": {
+ "hexValue": "31",
+ "id": 9424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13462:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13451:12:28"
+ },
+ {
+ "body": {
+ "id": 9462,
+ "nodeType": "Block",
+ "src": "13501:882:28",
+ "statements": [
+ {
+ "assignments": [
+ 9430
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9430,
+ "mutability": "mutable",
+ "name": "quotient",
+ "nameLocation": "13527:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9462,
+ "src": "13519:16:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9429,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13519:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9434,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9431,
+ "name": "gcd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9415,
+ "src": "13538:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9432,
+ "name": "remainder",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9409,
+ "src": "13544:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13538:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13519:34:28"
+ },
+ {
+ "expression": {
+ "id": 9445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 9435,
+ "name": "gcd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9415,
+ "src": "13573:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9436,
+ "name": "remainder",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9409,
+ "src": "13578:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9437,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "13572:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 9438,
+ "name": "remainder",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9409,
+ "src": "13678:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9439,
+ "name": "gcd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9415,
+ "src": "13923:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9440,
+ "name": "remainder",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9409,
+ "src": "13929:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9441,
+ "name": "quotient",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9430,
+ "src": "13941:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13929:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13923:26:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9444,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13591:376:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "13572:395:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9446,
+ "nodeType": "ExpressionStatement",
+ "src": "13572:395:28"
+ },
+ {
+ "expression": {
+ "id": 9460,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 9447,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9419,
+ "src": "13987:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ {
+ "id": 9448,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9423,
+ "src": "13990:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 9449,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "13986:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$",
+ "typeString": "tuple(int256,int256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 9450,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9423,
+ "src": "14072:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 9458,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9451,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9419,
+ "src": "14326:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 9457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9452,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9423,
+ "src": "14330:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 9455,
+ "name": "quotient",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9430,
+ "src": "14341:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9454,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14334:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 9453,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14334:6:28",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 9456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14334:16:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "14330:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "14326:24:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 9459,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13995:373:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$",
+ "typeString": "tuple(int256,int256)"
+ }
+ },
+ "src": "13986:382:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9461,
+ "nodeType": "ExpressionStatement",
+ "src": "13986:382:28"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9428,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9426,
+ "name": "remainder",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9409,
+ "src": "13485:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13498:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "13485:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9463,
+ "nodeType": "WhileStatement",
+ "src": "13478:905:28"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9464,
+ "name": "gcd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9415,
+ "src": "14401:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9465,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14408:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "14401:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9469,
+ "nodeType": "IfStatement",
+ "src": "14397:22:28",
+ "trueBody": {
+ "expression": {
+ "hexValue": "30",
+ "id": 9467,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14418:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 9401,
+ "id": 9468,
+ "nodeType": "Return",
+ "src": "14411:8:28"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 9473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9471,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9419,
+ "src": "14470:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14474:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "14470:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9480,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9474,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9397,
+ "src": "14477:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "arguments": [
+ {
+ "id": 9478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "-",
+ "prefix": true,
+ "src": "14489:2:28",
+ "subExpression": {
+ "id": 9477,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9419,
+ "src": "14490:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 9476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14481:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 9475,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14481:7:28",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 9479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14481:11:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14477:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 9483,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9419,
+ "src": "14502:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 9482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14494:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 9481,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14494:7:28",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 9484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14494:10:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9470,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9028,
+ "src": "14462:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (bool,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14462:43:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9401,
+ "id": 9486,
+ "nodeType": "Return",
+ "src": "14455:50:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9393,
+ "nodeType": "StructuredDocumentation",
+ "src": "12082:553:28",
+ "text": " @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}."
+ },
+ "id": 9489,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "invMod",
+ "nameLocation": "12649:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9398,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9395,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "12664:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9489,
+ "src": "12656:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9394,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12656:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9397,
+ "mutability": "mutable",
+ "name": "n",
+ "nameLocation": "12675:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9489,
+ "src": "12667:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9396,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12667:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12655:22:28"
+ },
+ "returnParameters": {
+ "id": 9401,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9400,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9489,
+ "src": "12701:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9399,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12701:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12700:9:28"
+ },
+ "scope": 10360,
+ "src": "12640:1919:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9509,
+ "nodeType": "Block",
+ "src": "15159:82:28",
+ "statements": [
+ {
+ "id": 9508,
+ "nodeType": "UncheckedBlock",
+ "src": "15169:66:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 9501,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9492,
+ "src": "15212:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9502,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9494,
+ "src": "15215:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 9503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15219:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "15215:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9505,
+ "name": "p",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9494,
+ "src": "15222:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9499,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10360,
+ "src": "15200:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$10360_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 9500,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15205:6:28",
+ "memberName": "modExp",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 9546,
+ "src": "15200:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) view returns (uint256)"
+ }
+ },
+ "id": 9506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15200:24:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9498,
+ "id": 9507,
+ "nodeType": "Return",
+ "src": "15193:31:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9490,
+ "nodeType": "StructuredDocumentation",
+ "src": "14565:514:28",
+ "text": " @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`."
+ },
+ "id": 9510,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "invModPrime",
+ "nameLocation": "15093:11:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9495,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9492,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "15113:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9510,
+ "src": "15105:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9491,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15105:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9494,
+ "mutability": "mutable",
+ "name": "p",
+ "nameLocation": "15124:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9510,
+ "src": "15116:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9493,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15116:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15104:22:28"
+ },
+ "returnParameters": {
+ "id": 9498,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9497,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9510,
+ "src": "15150:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9496,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15150:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15149:9:28"
+ },
+ "scope": 10360,
+ "src": "15084:157:28",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9545,
+ "nodeType": "Block",
+ "src": "16011:174:28",
+ "statements": [
+ {
+ "assignments": [
+ 9523,
+ 9525
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9523,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "16027:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9545,
+ "src": "16022:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9522,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16022:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9525,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "16044:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9545,
+ "src": "16036:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9524,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16036:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9531,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 9527,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9513,
+ "src": "16064:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9528,
+ "name": "e",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9515,
+ "src": "16067:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9529,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9517,
+ "src": "16070:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9526,
+ "name": "tryModExp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 9570,
+ 9652
+ ],
+ "referencedDeclaration": 9570,
+ "src": "16054:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) view returns (bool,uint256)"
+ }
+ },
+ "id": 9530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16054:18:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
+ "typeString": "tuple(bool,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16021:51:28"
+ },
+ {
+ "condition": {
+ "id": 9533,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "16086:8:28",
+ "subExpression": {
+ "id": 9532,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9523,
+ "src": "16087:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9542,
+ "nodeType": "IfStatement",
+ "src": "16082:74:28",
+ "trueBody": {
+ "id": 9541,
+ "nodeType": "Block",
+ "src": "16096:60:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 9537,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "16122:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "16128:16:28",
+ "memberName": "DIVISION_BY_ZERO",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6580,
+ "src": "16122:22:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9534,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "16110:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9536,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16116:5:28",
+ "memberName": "panic",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6612,
+ "src": "16110:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
+ "typeString": "function (uint256) pure"
+ }
+ },
+ "id": 9539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16110:35:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9540,
+ "nodeType": "ExpressionStatement",
+ "src": "16110:35:28"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 9543,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9525,
+ "src": "16172:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9521,
+ "id": 9544,
+ "nodeType": "Return",
+ "src": "16165:13:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9511,
+ "nodeType": "StructuredDocumentation",
+ "src": "15247:678:28",
+ "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."
+ },
+ "id": 9546,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "modExp",
+ "nameLocation": "15939:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9518,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9513,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "15954:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9546,
+ "src": "15946:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9512,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15946:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9515,
+ "mutability": "mutable",
+ "name": "e",
+ "nameLocation": "15965:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9546,
+ "src": "15957:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9514,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15957:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9517,
+ "mutability": "mutable",
+ "name": "m",
+ "nameLocation": "15976:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9546,
+ "src": "15968:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9516,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15968:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15945:33:28"
+ },
+ "returnParameters": {
+ "id": 9521,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9520,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9546,
+ "src": "16002:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9519,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16002:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16001:9:28"
+ },
+ "scope": 10360,
+ "src": "15930:255:28",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9569,
+ "nodeType": "Block",
+ "src": "17039:1493:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9560,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9553,
+ "src": "17053:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9561,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17058:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "17053:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9567,
+ "nodeType": "IfStatement",
+ "src": "17049:29:28",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 9563,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17069:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "hexValue": "30",
+ "id": 9564,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17076:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "id": 9565,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "17068:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
+ "typeString": "tuple(bool,int_const 0)"
+ }
+ },
+ "functionReturnParameters": 9559,
+ "id": 9566,
+ "nodeType": "Return",
+ "src": "17061:17:28"
+ }
+ },
+ {
+ "AST": {
+ "nativeSrc": "17113:1413:28",
+ "nodeType": "YulBlock",
+ "src": "17113:1413:28",
+ "statements": [
+ {
+ "nativeSrc": "17127:22:28",
+ "nodeType": "YulVariableDeclaration",
+ "src": "17127:22:28",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "17144:4:28",
+ "nodeType": "YulLiteral",
+ "src": "17144:4:28",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "17138:5:28",
+ "nodeType": "YulIdentifier",
+ "src": "17138:5:28"
+ },
+ "nativeSrc": "17138:11:28",
+ "nodeType": "YulFunctionCall",
+ "src": "17138:11:28"
+ },
+ "variables": [
+ {
+ "name": "ptr",
+ "nativeSrc": "17131:3:28",
+ "nodeType": "YulTypedName",
+ "src": "17131:3:28",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18057:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18057:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18062:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18062:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18050:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18050:6:28"
+ },
+ "nativeSrc": "18050:17:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18050:17:28"
+ },
+ "nativeSrc": "18050:17:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18050:17:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18091:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18091:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18096:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18096:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18087:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18087:3:28"
+ },
+ "nativeSrc": "18087:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18087:14:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18103:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18103:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18080:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18080:6:28"
+ },
+ "nativeSrc": "18080:28:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18080:28:28"
+ },
+ "nativeSrc": "18080:28:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18080:28:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18132:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18132:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18137:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18137:4:28",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18128:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18128:3:28"
+ },
+ "nativeSrc": "18128:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18128:14:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18144:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18144:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18121:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18121:6:28"
+ },
+ "nativeSrc": "18121:28:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18121:28:28"
+ },
+ "nativeSrc": "18121:28:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18121:28:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18173:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18173:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18178:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18178:4:28",
+ "type": "",
+ "value": "0x60"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18169:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18169:3:28"
+ },
+ "nativeSrc": "18169:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18169:14:28"
+ },
+ {
+ "name": "b",
+ "nativeSrc": "18185:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "18185:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18162:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18162:6:28"
+ },
+ "nativeSrc": "18162:25:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18162:25:28"
+ },
+ "nativeSrc": "18162:25:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18162:25:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18211:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18211:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18216:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18216:4:28",
+ "type": "",
+ "value": "0x80"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18207:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18207:3:28"
+ },
+ "nativeSrc": "18207:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18207:14:28"
+ },
+ {
+ "name": "e",
+ "nativeSrc": "18223:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "18223:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18200:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18200:6:28"
+ },
+ "nativeSrc": "18200:25:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18200:25:28"
+ },
+ "nativeSrc": "18200:25:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18200:25:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nativeSrc": "18249:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18249:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18254:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18254:4:28",
+ "type": "",
+ "value": "0xa0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18245:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18245:3:28"
+ },
+ "nativeSrc": "18245:14:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18245:14:28"
+ },
+ {
+ "name": "m",
+ "nativeSrc": "18261:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "18261:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18238:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18238:6:28"
+ },
+ "nativeSrc": "18238:25:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18238:25:28"
+ },
+ "nativeSrc": "18238:25:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "18238:25:28"
+ },
+ {
+ "nativeSrc": "18425:57:28",
+ "nodeType": "YulAssignment",
+ "src": "18425:57:28",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "18447:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18447:3:28"
+ },
+ "nativeSrc": "18447:5:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18447:5:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18454:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18454:4:28",
+ "type": "",
+ "value": "0x05"
+ },
+ {
+ "name": "ptr",
+ "nativeSrc": "18460:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "18460:3:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18465:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18465:4:28",
+ "type": "",
+ "value": "0xc0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18471:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18471:4:28",
+ "type": "",
+ "value": "0x00"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18477:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18477:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "18436:10:28",
+ "nodeType": "YulIdentifier",
+ "src": "18436:10:28"
+ },
+ "nativeSrc": "18436:46:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18436:46:28"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "18425:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "18425:7:28"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "18495:21:28",
+ "nodeType": "YulAssignment",
+ "src": "18495:21:28",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18511:4:28",
+ "nodeType": "YulLiteral",
+ "src": "18511:4:28",
+ "type": "",
+ "value": "0x00"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "18505:5:28",
+ "nodeType": "YulIdentifier",
+ "src": "18505:5:28"
+ },
+ "nativeSrc": "18505:11:28",
+ "nodeType": "YulFunctionCall",
+ "src": "18505:11:28"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "18495:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "18495:6:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 9549,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18185:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9551,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18223:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9553,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18261:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9558,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18495:6:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9556,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18425:7:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 9568,
+ "nodeType": "InlineAssembly",
+ "src": "17088:1438:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9547,
+ "nodeType": "StructuredDocumentation",
+ "src": "16191:738:28",
+ "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."
+ },
+ "id": 9570,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryModExp",
+ "nameLocation": "16943:9:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9554,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9549,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "16961:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9570,
+ "src": "16953:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9548,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16953:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9551,
+ "mutability": "mutable",
+ "name": "e",
+ "nameLocation": "16972:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9570,
+ "src": "16964:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9550,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16964:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9553,
+ "mutability": "mutable",
+ "name": "m",
+ "nameLocation": "16983:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9570,
+ "src": "16975:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9552,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16975:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16952:33:28"
+ },
+ "returnParameters": {
+ "id": 9559,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9556,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "17014:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9570,
+ "src": "17009:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9555,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "17009:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9558,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "17031:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9570,
+ "src": "17023:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9557,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17023:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17008:30:28"
+ },
+ "scope": 10360,
+ "src": "16934:1598:28",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9605,
+ "nodeType": "Block",
+ "src": "18729:179:28",
+ "statements": [
+ {
+ "assignments": [
+ 9583,
+ 9585
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9583,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "18745:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9605,
+ "src": "18740:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9582,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "18740:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9585,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "18767:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9605,
+ "src": "18754:19:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9584,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18754:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9591,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 9587,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9573,
+ "src": "18787:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 9588,
+ "name": "e",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9575,
+ "src": "18790:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 9589,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9577,
+ "src": "18793:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 9586,
+ "name": "tryModExp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 9570,
+ 9652
+ ],
+ "referencedDeclaration": 9652,
+ "src": "18777:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
+ "typeString": "function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"
+ }
+ },
+ "id": 9590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18777:18:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
+ "typeString": "tuple(bool,bytes memory)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "18739:56:28"
+ },
+ {
+ "condition": {
+ "id": 9593,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "18809:8:28",
+ "subExpression": {
+ "id": 9592,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9583,
+ "src": "18810:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9602,
+ "nodeType": "IfStatement",
+ "src": "18805:74:28",
+ "trueBody": {
+ "id": 9601,
+ "nodeType": "Block",
+ "src": "18819:60:28",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 9597,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "18845:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "18851:16:28",
+ "memberName": "DIVISION_BY_ZERO",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6580,
+ "src": "18845:22:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 9594,
+ "name": "Panic",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6613,
+ "src": "18833:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$",
+ "typeString": "type(library Panic)"
+ }
+ },
+ "id": 9596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18839:5:28",
+ "memberName": "panic",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6612,
+ "src": "18833:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
+ "typeString": "function (uint256) pure"
+ }
+ },
+ "id": 9599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18833:35:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 9600,
+ "nodeType": "ExpressionStatement",
+ "src": "18833:35:28"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 9603,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9585,
+ "src": "18895:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 9581,
+ "id": 9604,
+ "nodeType": "Return",
+ "src": "18888:13:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9571,
+ "nodeType": "StructuredDocumentation",
+ "src": "18538:85:28",
+ "text": " @dev Variant of {modExp} that supports inputs of arbitrary length."
+ },
+ "id": 9606,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "modExp",
+ "nameLocation": "18637:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9578,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9573,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "18657:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9606,
+ "src": "18644:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9572,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18644:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9575,
+ "mutability": "mutable",
+ "name": "e",
+ "nameLocation": "18673:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9606,
+ "src": "18660:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9574,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18660:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9577,
+ "mutability": "mutable",
+ "name": "m",
+ "nameLocation": "18689:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9606,
+ "src": "18676:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9576,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18676:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18643:48:28"
+ },
+ "returnParameters": {
+ "id": 9581,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9580,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9606,
+ "src": "18715:12:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9579,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "18715:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18714:14:28"
+ },
+ "scope": 10360,
+ "src": "18628:280:28",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9651,
+ "nodeType": "Block",
+ "src": "19162:771:28",
+ "statements": [
+ {
+ "condition": {
+ "arguments": [
+ {
+ "id": 9621,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9613,
+ "src": "19187:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 9620,
+ "name": "_zeroBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9685,
+ "src": "19176:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$",
+ "typeString": "function (bytes memory) pure returns (bool)"
+ }
+ },
+ "id": 9622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19176:13:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9630,
+ "nodeType": "IfStatement",
+ "src": "19172:47:28",
+ "trueBody": {
+ "expression": {
+ "components": [
+ {
+ "hexValue": "66616c7365",
+ "id": 9623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19199:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 9626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19216:1:28",
+ "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": 9625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "19206:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (bytes memory)"
+ },
+ "typeName": {
+ "id": 9624,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "19210:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ }
+ },
+ "id": 9627,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19206:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "id": 9628,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "19198:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
+ "typeString": "tuple(bool,bytes memory)"
+ }
+ },
+ "functionReturnParameters": 9619,
+ "id": 9629,
+ "nodeType": "Return",
+ "src": "19191:28:28"
+ }
+ },
+ {
+ "assignments": [
+ 9632
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9632,
+ "mutability": "mutable",
+ "name": "mLen",
+ "nameLocation": "19238:4:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9651,
+ "src": "19230:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9631,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19230:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9635,
+ "initialValue": {
+ "expression": {
+ "id": 9633,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9613,
+ "src": "19245:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9634,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19247:6:28",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "19245:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19230:23:28"
+ },
+ {
+ "expression": {
+ "id": 9648,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9636,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9618,
+ "src": "19335:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 9639,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9609,
+ "src": "19361:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19363:6:28",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "19361:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 9641,
+ "name": "e",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9611,
+ "src": "19371:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19373:6:28",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "19371:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9643,
+ "name": "mLen",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9632,
+ "src": "19381:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 9644,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9609,
+ "src": "19387:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 9645,
+ "name": "e",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9611,
+ "src": "19390:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "id": 9646,
+ "name": "m",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9613,
+ "src": "19393:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 9637,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "19344:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 9638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "19348:12:28",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "19344:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 9647,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19344:51:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "src": "19335:60:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9649,
+ "nodeType": "ExpressionStatement",
+ "src": "19335:60:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "19431:496:28",
+ "nodeType": "YulBlock",
+ "src": "19431:496:28",
+ "statements": [
+ {
+ "nativeSrc": "19445:32:28",
+ "nodeType": "YulVariableDeclaration",
+ "src": "19445:32:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "result",
+ "nativeSrc": "19464:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "19464:6:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "19472:4:28",
+ "nodeType": "YulLiteral",
+ "src": "19472:4:28",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "19460:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "19460:3:28"
+ },
+ "nativeSrc": "19460:17:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19460:17:28"
+ },
+ "variables": [
+ {
+ "name": "dataPtr",
+ "nativeSrc": "19449:7:28",
+ "nodeType": "YulTypedName",
+ "src": "19449:7:28",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "19567:73:28",
+ "nodeType": "YulAssignment",
+ "src": "19567:73:28",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "19589:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "19589:3:28"
+ },
+ "nativeSrc": "19589:5:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19589:5:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "19596:4:28",
+ "nodeType": "YulLiteral",
+ "src": "19596:4:28",
+ "type": "",
+ "value": "0x05"
+ },
+ {
+ "name": "dataPtr",
+ "nativeSrc": "19602:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "19602:7:28"
+ },
+ {
+ "arguments": [
+ {
+ "name": "result",
+ "nativeSrc": "19617:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "19617:6:28"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "19611:5:28",
+ "nodeType": "YulIdentifier",
+ "src": "19611:5:28"
+ },
+ "nativeSrc": "19611:13:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19611:13:28"
+ },
+ {
+ "name": "dataPtr",
+ "nativeSrc": "19626:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "19626:7:28"
+ },
+ {
+ "name": "mLen",
+ "nativeSrc": "19635:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "19635:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "19578:10:28",
+ "nodeType": "YulIdentifier",
+ "src": "19578:10:28"
+ },
+ "nativeSrc": "19578:62:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19578:62:28"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "19567:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "19567:7:28"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "result",
+ "nativeSrc": "19796:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "19796:6:28"
+ },
+ {
+ "name": "mLen",
+ "nativeSrc": "19804:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "19804:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "19789:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "19789:6:28"
+ },
+ "nativeSrc": "19789:20:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19789:20:28"
+ },
+ "nativeSrc": "19789:20:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "19789:20:28"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "19892:4:28",
+ "nodeType": "YulLiteral",
+ "src": "19892:4:28",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataPtr",
+ "nativeSrc": "19902:7:28",
+ "nodeType": "YulIdentifier",
+ "src": "19902:7:28"
+ },
+ {
+ "name": "mLen",
+ "nativeSrc": "19911:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "19911:4:28"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "19898:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "19898:3:28"
+ },
+ "nativeSrc": "19898:18:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19898:18:28"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "19885:6:28",
+ "nodeType": "YulIdentifier",
+ "src": "19885:6:28"
+ },
+ "nativeSrc": "19885:32:28",
+ "nodeType": "YulFunctionCall",
+ "src": "19885:32:28"
+ },
+ "nativeSrc": "19885:32:28",
+ "nodeType": "YulExpressionStatement",
+ "src": "19885:32:28"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 9632,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19635:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9632,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19804:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9632,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19911:4:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9618,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19464:6:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9618,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19617:6:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9618,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19796:6:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9616,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19567:7:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 9650,
+ "nodeType": "InlineAssembly",
+ "src": "19406:521:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9607,
+ "nodeType": "StructuredDocumentation",
+ "src": "18914:88:28",
+ "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length."
+ },
+ "id": 9652,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tryModExp",
+ "nameLocation": "19016:9:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9614,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9609,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "19048:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9652,
+ "src": "19035:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9608,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "19035:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9611,
+ "mutability": "mutable",
+ "name": "e",
+ "nameLocation": "19072:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9652,
+ "src": "19059:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9610,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "19059:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9613,
+ "mutability": "mutable",
+ "name": "m",
+ "nameLocation": "19096:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9652,
+ "src": "19083:14:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9612,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "19083:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19025:78:28"
+ },
+ "returnParameters": {
+ "id": 9619,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9616,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "19132:7:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9652,
+ "src": "19127:12:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9615,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "19127:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9618,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "19154:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9652,
+ "src": "19141:19:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9617,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "19141:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19126:35:28"
+ },
+ "scope": 10360,
+ "src": "19007:926:28",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9684,
+ "nodeType": "Block",
+ "src": "20088:176:28",
+ "statements": [
+ {
+ "body": {
+ "id": 9680,
+ "nodeType": "Block",
+ "src": "20145:92:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ },
+ "id": 9675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "id": 9671,
+ "name": "byteArray",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9655,
+ "src": "20163:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9673,
+ "indexExpression": {
+ "id": 9672,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9661,
+ "src": "20173:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "20163:12:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes1",
+ "typeString": "bytes1"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 9674,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20179:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "20163:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9679,
+ "nodeType": "IfStatement",
+ "src": "20159:68:28",
+ "trueBody": {
+ "id": 9678,
+ "nodeType": "Block",
+ "src": "20182:45:28",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "66616c7365",
+ "id": 9676,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20207:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "functionReturnParameters": 9659,
+ "id": 9677,
+ "nodeType": "Return",
+ "src": "20200:12:28"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9667,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9664,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9661,
+ "src": "20118:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 9665,
+ "name": "byteArray",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9655,
+ "src": "20122:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 9666,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20132:6:28",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "20122:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "20118:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9681,
+ "initializationExpression": {
+ "assignments": [
+ 9661
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9661,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "20111:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9681,
+ "src": "20103:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9660,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20103:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9663,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 9662,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20115:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20103:13:28"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 9669,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "20140:3:28",
+ "subExpression": {
+ "id": 9668,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9661,
+ "src": "20142:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9670,
+ "nodeType": "ExpressionStatement",
+ "src": "20140:3:28"
+ },
+ "nodeType": "ForStatement",
+ "src": "20098:139:28"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 9682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20253:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 9659,
+ "id": 9683,
+ "nodeType": "Return",
+ "src": "20246:11:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9653,
+ "nodeType": "StructuredDocumentation",
+ "src": "19939:72:28",
+ "text": " @dev Returns whether the provided byte array is zero."
+ },
+ "id": 9685,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_zeroBytes",
+ "nameLocation": "20025:10:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9656,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9655,
+ "mutability": "mutable",
+ "name": "byteArray",
+ "nameLocation": "20049:9:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9685,
+ "src": "20036:22:28",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 9654,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "20036:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20035:24:28"
+ },
+ "returnParameters": {
+ "id": 9659,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9658,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9685,
+ "src": "20082:4:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9657,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "20082:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20081:6:28"
+ },
+ "scope": 10360,
+ "src": "20016:248:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 9903,
+ "nodeType": "Block",
+ "src": "20624:5124:28",
+ "statements": [
+ {
+ "id": 9902,
+ "nodeType": "UncheckedBlock",
+ "src": "20634:5108:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9695,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9693,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "20728:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9694,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20733:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "20728:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9699,
+ "nodeType": "IfStatement",
+ "src": "20724:53:28",
+ "trueBody": {
+ "id": 9698,
+ "nodeType": "Block",
+ "src": "20736:41:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9696,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "20761:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9692,
+ "id": 9697,
+ "nodeType": "Return",
+ "src": "20754:8:28"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 9701
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9701,
+ "mutability": "mutable",
+ "name": "aa",
+ "nameLocation": "21712:2:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9902,
+ "src": "21704:10:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9700,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21704:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9703,
+ "initialValue": {
+ "id": 9702,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "21717:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "21704:14:28"
+ },
+ {
+ "assignments": [
+ 9705
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9705,
+ "mutability": "mutable",
+ "name": "xn",
+ "nameLocation": "21740:2:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9902,
+ "src": "21732:10:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9704,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21732:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9707,
+ "initialValue": {
+ "hexValue": "31",
+ "id": 9706,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21745:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "21732:14:28"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9713,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9708,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "21765:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
+ "typeString": "int_const 3402...(31 digits omitted)...1456"
+ },
+ "id": 9711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9709,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21772:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "313238",
+ "id": 9710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21777:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "src": "21772:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
+ "typeString": "int_const 3402...(31 digits omitted)...1456"
+ }
+ }
+ ],
+ "id": 9712,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "21771:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
+ "typeString": "int_const 3402...(31 digits omitted)...1456"
+ }
+ },
+ "src": "21765:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9723,
+ "nodeType": "IfStatement",
+ "src": "21761:92:28",
+ "trueBody": {
+ "id": 9722,
+ "nodeType": "Block",
+ "src": "21783:70:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9716,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9714,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "21801:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "313238",
+ "id": 9715,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21808:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "src": "21801:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9717,
+ "nodeType": "ExpressionStatement",
+ "src": "21801:10:28"
+ },
+ {
+ "expression": {
+ "id": 9720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9718,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "21829:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "3634",
+ "id": 9719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21836:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "21829:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9721,
+ "nodeType": "ExpressionStatement",
+ "src": "21829:9:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9724,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "21870:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_18446744073709551616_by_1",
+ "typeString": "int_const 18446744073709551616"
+ },
+ "id": 9727,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9725,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21877:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 9726,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21882:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "21877:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18446744073709551616_by_1",
+ "typeString": "int_const 18446744073709551616"
+ }
+ }
+ ],
+ "id": 9728,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "21876:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18446744073709551616_by_1",
+ "typeString": "int_const 18446744073709551616"
+ }
+ },
+ "src": "21870:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9739,
+ "nodeType": "IfStatement",
+ "src": "21866:90:28",
+ "trueBody": {
+ "id": 9738,
+ "nodeType": "Block",
+ "src": "21887:69:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9730,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "21905:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "3634",
+ "id": 9731,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21912:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "21905:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9733,
+ "nodeType": "ExpressionStatement",
+ "src": "21905:9:28"
+ },
+ {
+ "expression": {
+ "id": 9736,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9734,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "21932:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "3332",
+ "id": 9735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21939:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "21932:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9737,
+ "nodeType": "ExpressionStatement",
+ "src": "21932:9:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9745,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9740,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "21973:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_4294967296_by_1",
+ "typeString": "int_const 4294967296"
+ },
+ "id": 9743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21980:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 9742,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21985:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "21980:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4294967296_by_1",
+ "typeString": "int_const 4294967296"
+ }
+ }
+ ],
+ "id": 9744,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "21979:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4294967296_by_1",
+ "typeString": "int_const 4294967296"
+ }
+ },
+ "src": "21973:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9755,
+ "nodeType": "IfStatement",
+ "src": "21969:90:28",
+ "trueBody": {
+ "id": 9754,
+ "nodeType": "Block",
+ "src": "21990:69:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9748,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9746,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22008:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "3332",
+ "id": 9747,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22015:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "22008:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9749,
+ "nodeType": "ExpressionStatement",
+ "src": "22008:9:28"
+ },
+ {
+ "expression": {
+ "id": 9752,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9750,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22035:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "3136",
+ "id": 9751,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22042:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "22035:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9753,
+ "nodeType": "ExpressionStatement",
+ "src": "22035:9:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9761,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9756,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22076:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_65536_by_1",
+ "typeString": "int_const 65536"
+ },
+ "id": 9759,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9757,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22083:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 9758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22088:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "22083:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65536_by_1",
+ "typeString": "int_const 65536"
+ }
+ }
+ ],
+ "id": 9760,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22082:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65536_by_1",
+ "typeString": "int_const 65536"
+ }
+ },
+ "src": "22076:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9771,
+ "nodeType": "IfStatement",
+ "src": "22072:89:28",
+ "trueBody": {
+ "id": 9770,
+ "nodeType": "Block",
+ "src": "22093:68:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9762,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22111:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "3136",
+ "id": 9763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22118:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "22111:9:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9765,
+ "nodeType": "ExpressionStatement",
+ "src": "22111:9:28"
+ },
+ {
+ "expression": {
+ "id": 9768,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9766,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22138:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "38",
+ "id": 9767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22145:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "22138:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9769,
+ "nodeType": "ExpressionStatement",
+ "src": "22138:8:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9772,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22178:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ },
+ "id": 9775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22185:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 9774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22190:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "22185:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ }
+ }
+ ],
+ "id": 9776,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22184:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_256_by_1",
+ "typeString": "int_const 256"
+ }
+ },
+ "src": "22178:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9787,
+ "nodeType": "IfStatement",
+ "src": "22174:87:28",
+ "trueBody": {
+ "id": 9786,
+ "nodeType": "Block",
+ "src": "22194:67:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9780,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9778,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22212:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "38",
+ "id": 9779,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22219:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "22212:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9781,
+ "nodeType": "ExpressionStatement",
+ "src": "22212:8:28"
+ },
+ {
+ "expression": {
+ "id": 9784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9782,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22238:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "34",
+ "id": 9783,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22245:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "22238:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9785,
+ "nodeType": "ExpressionStatement",
+ "src": "22238:8:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9788,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22278:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "id": 9791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22285:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 9790,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22290:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "22285:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ }
+ }
+ ],
+ "id": 9792,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22284:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ }
+ },
+ "src": "22278:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9803,
+ "nodeType": "IfStatement",
+ "src": "22274:87:28",
+ "trueBody": {
+ "id": 9802,
+ "nodeType": "Block",
+ "src": "22294:67:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9796,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9794,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22312:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": ">>=",
+ "rightHandSide": {
+ "hexValue": "34",
+ "id": 9795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22319:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "22312:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9797,
+ "nodeType": "ExpressionStatement",
+ "src": "22312:8:28"
+ },
+ {
+ "expression": {
+ "id": 9800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9798,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22338:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "32",
+ "id": 9799,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22345:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "22338:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9801,
+ "nodeType": "ExpressionStatement",
+ "src": "22338:8:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9809,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9804,
+ "name": "aa",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9701,
+ "src": "22378:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "id": 9807,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 9805,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22385:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 9806,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22390:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "22385:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ }
+ }
+ ],
+ "id": 9808,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22384:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ }
+ },
+ "src": "22378:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 9815,
+ "nodeType": "IfStatement",
+ "src": "22374:61:28",
+ "trueBody": {
+ "id": 9814,
+ "nodeType": "Block",
+ "src": "22394:41:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9812,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9810,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22412:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "<<=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 9811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22419:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22412:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9813,
+ "nodeType": "ExpressionStatement",
+ "src": "22412:8:28"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 9823,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9816,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22855:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9822,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9819,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "33",
+ "id": 9817,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22861:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9818,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "22865:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22861:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9820,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22860:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22872:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "22860:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "22855:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9824,
+ "nodeType": "ExpressionStatement",
+ "src": "22855:18:28"
+ },
+ {
+ "expression": {
+ "id": 9834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9825,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24760:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9833,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9826,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24766:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9829,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9827,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "24771:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9828,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24775:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24771:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24766:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9831,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "24765:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "24782:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "24765:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24760:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9835,
+ "nodeType": "ExpressionStatement",
+ "src": "24760:23:28"
+ },
+ {
+ "expression": {
+ "id": 9845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9836,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24869:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9837,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24875:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9838,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "24880:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9839,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24884:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24880:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24875:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9842,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "24874:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "24891:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "24874:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24869:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9846,
+ "nodeType": "ExpressionStatement",
+ "src": "24869:23:28"
+ },
+ {
+ "expression": {
+ "id": 9856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9847,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24980:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9855,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9852,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9848,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24986:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9849,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "24991:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9850,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "24995:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24991:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24986:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9853,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "24985:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "25002:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "24985:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "24980:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9857,
+ "nodeType": "ExpressionStatement",
+ "src": "24980:23:28"
+ },
+ {
+ "expression": {
+ "id": 9867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9858,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25089:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9866,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9863,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9859,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25095:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9860,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "25100:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9861,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25104:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25100:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25095:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9864,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "25094:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "25111:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "25094:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25089:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9868,
+ "nodeType": "ExpressionStatement",
+ "src": "25089:23:28"
+ },
+ {
+ "expression": {
+ "id": 9878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9869,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25199:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9877,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9874,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9870,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25205:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9871,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "25210:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9872,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25214:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25210:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25205:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9875,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "25204:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9876,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "25221:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "25204:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25199:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9879,
+ "nodeType": "ExpressionStatement",
+ "src": "25199:23:28"
+ },
+ {
+ "expression": {
+ "id": 9889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9880,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25309:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9881,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25315:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9882,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "25320:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9883,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25324:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25320:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25315:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9886,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "25314:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 9887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "25331:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "25314:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25309:23:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9890,
+ "nodeType": "ExpressionStatement",
+ "src": "25309:23:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9891,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25698:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9894,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25719:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9895,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9688,
+ "src": "25724:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 9896,
+ "name": "xn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9705,
+ "src": "25728:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25724:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25719:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9892,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "25703:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "25712:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "25703:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25703:28:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "25698:33:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9692,
+ "id": 9901,
+ "nodeType": "Return",
+ "src": "25691:40:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9686,
+ "nodeType": "StructuredDocumentation",
+ "src": "20270:292:28",
+ "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."
+ },
+ "id": 9904,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sqrt",
+ "nameLocation": "20576:4:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9689,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9688,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "20589:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9904,
+ "src": "20581:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9687,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20581:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20580:11:28"
+ },
+ "returnParameters": {
+ "id": 9692,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9691,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9904,
+ "src": "20615:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9690,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20615:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20614:9:28"
+ },
+ "scope": 10360,
+ "src": "20567:5181:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 9937,
+ "nodeType": "Block",
+ "src": "25921:171:28",
+ "statements": [
+ {
+ "id": 9936,
+ "nodeType": "UncheckedBlock",
+ "src": "25931:155:28",
+ "statements": [
+ {
+ "assignments": [
+ 9916
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 9916,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "25963:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9936,
+ "src": "25955:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9915,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25955:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 9920,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 9918,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9907,
+ "src": "25977:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 9917,
+ "name": "sqrt",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 9904,
+ 9938
+ ],
+ "referencedDeclaration": 9904,
+ "src": "25972:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 9919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25972:7:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "25955:24:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9921,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9916,
+ "src": "26000:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 9932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 9925,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9910,
+ "src": "26042:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 9924,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "26025:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 9926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26025:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9929,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9927,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9916,
+ "src": "26055:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 9928,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9916,
+ "src": "26064:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26055:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 9930,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9907,
+ "src": "26073:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26055:19:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "26025:49:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9922,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26009:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26018:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26009:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26009:66:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26000:75:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 9914,
+ "id": 9935,
+ "nodeType": "Return",
+ "src": "25993:82:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9905,
+ "nodeType": "StructuredDocumentation",
+ "src": "25754:86:28",
+ "text": " @dev Calculates sqrt(a), following the selected rounding direction."
+ },
+ "id": 9938,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sqrt",
+ "nameLocation": "25854:4:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9911,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9907,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "25867:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9938,
+ "src": "25859:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9906,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25859:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9910,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "25879:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 9938,
+ "src": "25870:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 9909,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 9908,
+ "name": "Rounding",
+ "nameLocations": [
+ "25870:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "25870:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "25870:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25858:30:28"
+ },
+ "returnParameters": {
+ "id": 9914,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9913,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 9938,
+ "src": "25912:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9912,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25912:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25911:9:28"
+ },
+ "scope": 10360,
+ "src": "25845:247:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10028,
+ "nodeType": "Block",
+ "src": "26281:2334:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 9955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9946,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26363:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9954,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9951,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9949,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "26383:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666",
+ "id": 9950,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26387:34:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
+ "typeString": "int_const 3402...(31 digits omitted)...1455"
+ },
+ "value": "0xffffffffffffffffffffffffffffffff"
+ },
+ "src": "26383:38:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9947,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26367:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26376:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26367:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9952,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26367:55:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "37",
+ "id": 9953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26426:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "src": "26367:60:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26363:64:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9956,
+ "nodeType": "ExpressionStatement",
+ "src": "26363:64:28"
+ },
+ {
+ "expression": {
+ "id": 9969,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9957,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26503:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9962,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9960,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "26525:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 9961,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26530:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26525:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9963,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "26524:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307866666666666666666666666666666666",
+ "id": 9964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26535:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18446744073709551615_by_1",
+ "typeString": "int_const 18446744073709551615"
+ },
+ "value": "0xffffffffffffffff"
+ },
+ "src": "26524:29:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9958,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26508:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26517:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26508:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26508:46:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "36",
+ "id": 9967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26558:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "src": "26508:51:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26503:56:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9970,
+ "nodeType": "ExpressionStatement",
+ "src": "26503:56:28"
+ },
+ {
+ "expression": {
+ "id": 9983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9971,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26634:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9976,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9974,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "26656:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 9975,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26661:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26656:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9977,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "26655:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666666666666666",
+ "id": 9978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26666:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4294967295_by_1",
+ "typeString": "int_const 4294967295"
+ },
+ "value": "0xffffffff"
+ },
+ "src": "26655:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9972,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26639:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26648:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26639:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9980,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26639:38:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "35",
+ "id": 9981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26681:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "src": "26639:43:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26634:48:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9984,
+ "nodeType": "ExpressionStatement",
+ "src": "26634:48:28"
+ },
+ {
+ "expression": {
+ "id": 9997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9985,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26757:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9996,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 9990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 9988,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "26779:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 9989,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26784:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26779:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 9991,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "26778:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307866666666",
+ "id": 9992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26789:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65535_by_1",
+ "typeString": "int_const 65535"
+ },
+ "value": "0xffff"
+ },
+ "src": "26778:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 9986,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26762:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 9987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26771:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26762:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 9994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26762:34:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 9995,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26800:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "26762:39:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26757:44:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 9998,
+ "nodeType": "ExpressionStatement",
+ "src": "26757:44:28"
+ },
+ {
+ "expression": {
+ "id": 10011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 9999,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26874:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10010,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10007,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10004,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10002,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "26896:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10003,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26901:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26896:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10005,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "26895:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666",
+ "id": 10006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26906:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "0xff"
+ },
+ "src": "26895:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10000,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26879:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "26888:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26879:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10008,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26879:32:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 10009,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26915:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "26879:37:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26874:42:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10012,
+ "nodeType": "ExpressionStatement",
+ "src": "26874:42:28"
+ },
+ {
+ "expression": {
+ "id": 10025,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10013,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "26988:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10016,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9941,
+ "src": "27010:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10017,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 9944,
+ "src": "27015:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "27010:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10019,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "27009:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307866",
+ "id": 10020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "27020:3:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15_by_1",
+ "typeString": "int_const 15"
+ },
+ "value": "0xf"
+ },
+ "src": "27009:14:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10014,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "26993:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "27002:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "26993:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26993:31:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 10023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "27028:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "26993:36:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "26988:41:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10026,
+ "nodeType": "ExpressionStatement",
+ "src": "26988:41:28"
+ },
+ {
+ "AST": {
+ "nativeSrc": "28490:119:28",
+ "nodeType": "YulBlock",
+ "src": "28490:119:28",
+ "statements": [
+ {
+ "nativeSrc": "28504:95:28",
+ "nodeType": "YulAssignment",
+ "src": "28504:95:28",
+ "value": {
+ "arguments": [
+ {
+ "name": "r",
+ "nativeSrc": "28512:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "28512:1:28"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "r",
+ "nativeSrc": "28524:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "28524:1:28"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "28527:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "28527:1:28"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nativeSrc": "28520:3:28",
+ "nodeType": "YulIdentifier",
+ "src": "28520:3:28"
+ },
+ "nativeSrc": "28520:9:28",
+ "nodeType": "YulFunctionCall",
+ "src": "28520:9:28"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "28531:66:28",
+ "nodeType": "YulLiteral",
+ "src": "28531:66:28",
+ "type": "",
+ "value": "0x0000010102020202030303030303030300000000000000000000000000000000"
+ }
+ ],
+ "functionName": {
+ "name": "byte",
+ "nativeSrc": "28515:4:28",
+ "nodeType": "YulIdentifier",
+ "src": "28515:4:28"
+ },
+ "nativeSrc": "28515:83:28",
+ "nodeType": "YulFunctionCall",
+ "src": "28515:83:28"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "28509:2:28",
+ "nodeType": "YulIdentifier",
+ "src": "28509:2:28"
+ },
+ "nativeSrc": "28509:90:28",
+ "nodeType": "YulFunctionCall",
+ "src": "28509:90:28"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nativeSrc": "28504:1:28",
+ "nodeType": "YulIdentifier",
+ "src": "28504:1:28"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 9944,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "28504:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9944,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "28512:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9944,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "28524:1:28",
+ "valueSize": 1
+ },
+ {
+ "declaration": 9941,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "28527:1:28",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 10027,
+ "nodeType": "InlineAssembly",
+ "src": "28465:144:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 9939,
+ "nodeType": "StructuredDocumentation",
+ "src": "26098:119:28",
+ "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."
+ },
+ "id": 10029,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log2",
+ "nameLocation": "26231:4:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 9942,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9941,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "26244:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10029,
+ "src": "26236:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9940,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26236:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26235:11:28"
+ },
+ "returnParameters": {
+ "id": 9945,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 9944,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "26278:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10029,
+ "src": "26270:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 9943,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26270:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26269:11:28"
+ },
+ "scope": 10360,
+ "src": "26222:2393:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10062,
+ "nodeType": "Block",
+ "src": "28848:175:28",
+ "statements": [
+ {
+ "id": 10061,
+ "nodeType": "UncheckedBlock",
+ "src": "28858:159:28",
+ "statements": [
+ {
+ "assignments": [
+ 10041
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 10041,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "28890:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10061,
+ "src": "28882:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10040,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28882:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 10045,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 10043,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10032,
+ "src": "28904:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10042,
+ "name": "log2",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 10029,
+ 10063
+ ],
+ "referencedDeclaration": 10029,
+ "src": "28899:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 10044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28899:11:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "28882:28:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10046,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10041,
+ "src": "28931:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 10057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 10050,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10035,
+ "src": "28973:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 10049,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "28956:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 10051,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28956:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 10052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "28986:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "id": 10053,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10041,
+ "src": "28991:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "28986:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 10055,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10032,
+ "src": "29000:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "28986:19:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "28956:49:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10047,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "28940:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "28949:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "28940:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10058,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28940:66:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "28931:75:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 10039,
+ "id": 10060,
+ "nodeType": "Return",
+ "src": "28924:82:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10030,
+ "nodeType": "StructuredDocumentation",
+ "src": "28621:142:28",
+ "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
+ },
+ "id": 10063,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log2",
+ "nameLocation": "28777:4:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10036,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10032,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "28790:5:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10063,
+ "src": "28782:13:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10031,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28782:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10035,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "28806:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10063,
+ "src": "28797:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 10034,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 10033,
+ "name": "Rounding",
+ "nameLocations": [
+ "28797:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "28797:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "28797:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28781:34:28"
+ },
+ "returnParameters": {
+ "id": 10039,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10038,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10063,
+ "src": "28839:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10037,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28839:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28838:9:28"
+ },
+ "scope": 10360,
+ "src": "28768:255:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10191,
+ "nodeType": "Block",
+ "src": "29216:854:28",
+ "statements": [
+ {
+ "assignments": [
+ 10072
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 10072,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "29234:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10191,
+ "src": "29226:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10071,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "29226:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 10074,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 10073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29243:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "29226:18:28"
+ },
+ {
+ "id": 10188,
+ "nodeType": "UncheckedBlock",
+ "src": "29254:787:28",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10075,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29282:5:28",
+ "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": 10078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29291:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 10077,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29297:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "29291:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
+ "typeString": "int_const 1000...(57 digits omitted)...0000"
+ }
+ },
+ "src": "29282:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10091,
+ "nodeType": "IfStatement",
+ "src": "29278:103:28",
+ "trueBody": {
+ "id": 10090,
+ "nodeType": "Block",
+ "src": "29301:80:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10080,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29319:5:28",
+ "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": 10083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29328:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3634",
+ "id": 10082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29334:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "29328:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
+ "typeString": "int_const 1000...(57 digits omitted)...0000"
+ }
+ },
+ "src": "29319:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10085,
+ "nodeType": "ExpressionStatement",
+ "src": "29319:17:28"
+ },
+ {
+ "expression": {
+ "id": 10088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10086,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29354:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "3634",
+ "id": 10087,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29364:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ "src": "29354:12:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10089,
+ "nodeType": "ExpressionStatement",
+ "src": "29354:12:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10096,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10092,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29398:5:28",
+ "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": 10095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29407:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 10094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29413:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "29407:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
+ "typeString": "int_const 1000...(25 digits omitted)...0000"
+ }
+ },
+ "src": "29398:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10108,
+ "nodeType": "IfStatement",
+ "src": "29394:103:28",
+ "trueBody": {
+ "id": 10107,
+ "nodeType": "Block",
+ "src": "29417:80:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10097,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29435:5:28",
+ "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": 10100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29444:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 10099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29450:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "29444:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
+ "typeString": "int_const 1000...(25 digits omitted)...0000"
+ }
+ },
+ "src": "29435:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10102,
+ "nodeType": "ExpressionStatement",
+ "src": "29435:17:28"
+ },
+ {
+ "expression": {
+ "id": 10105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10103,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29470:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "3332",
+ "id": 10104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29480:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "29470:12:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10106,
+ "nodeType": "ExpressionStatement",
+ "src": "29470:12:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10113,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10109,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29514:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_10000000000000000_by_1",
+ "typeString": "int_const 10000000000000000"
+ },
+ "id": 10112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10110,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29523:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 10111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29529:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "29523:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000000000000000_by_1",
+ "typeString": "int_const 10000000000000000"
+ }
+ },
+ "src": "29514:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10125,
+ "nodeType": "IfStatement",
+ "src": "29510:103:28",
+ "trueBody": {
+ "id": 10124,
+ "nodeType": "Block",
+ "src": "29533:80:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10118,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10114,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29551:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "/=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_rational_10000000000000000_by_1",
+ "typeString": "int_const 10000000000000000"
+ },
+ "id": 10117,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29560:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 10116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29566:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "29560:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000000000000000_by_1",
+ "typeString": "int_const 10000000000000000"
+ }
+ },
+ "src": "29551:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10119,
+ "nodeType": "ExpressionStatement",
+ "src": "29551:17:28"
+ },
+ {
+ "expression": {
+ "id": 10122,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10120,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29586:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "3136",
+ "id": 10121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29596:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "29586:12:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10123,
+ "nodeType": "ExpressionStatement",
+ "src": "29586:12:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10126,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29630:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_100000000_by_1",
+ "typeString": "int_const 100000000"
+ },
+ "id": 10129,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29639:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 10128,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29645:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "29639:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100000000_by_1",
+ "typeString": "int_const 100000000"
+ }
+ },
+ "src": "29630:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10142,
+ "nodeType": "IfStatement",
+ "src": "29626:100:28",
+ "trueBody": {
+ "id": 10141,
+ "nodeType": "Block",
+ "src": "29648:78:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10135,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10131,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29666:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "/=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_rational_100000000_by_1",
+ "typeString": "int_const 100000000"
+ },
+ "id": 10134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29675:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 10133,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29681:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "29675:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100000000_by_1",
+ "typeString": "int_const 100000000"
+ }
+ },
+ "src": "29666:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10136,
+ "nodeType": "ExpressionStatement",
+ "src": "29666:16:28"
+ },
+ {
+ "expression": {
+ "id": 10139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10137,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29700:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "38",
+ "id": 10138,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29710:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "29700:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10140,
+ "nodeType": "ExpressionStatement",
+ "src": "29700:11:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10147,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10143,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29743:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ },
+ "id": 10146,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29752:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 10145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29758:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "29752:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ }
+ },
+ "src": "29743:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10159,
+ "nodeType": "IfStatement",
+ "src": "29739:100:28",
+ "trueBody": {
+ "id": 10158,
+ "nodeType": "Block",
+ "src": "29761:78:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10152,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10148,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29779:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "/=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ },
+ "id": 10151,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10149,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29788:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 10150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29794:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "29788:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ }
+ },
+ "src": "29779:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10153,
+ "nodeType": "ExpressionStatement",
+ "src": "29779:16:28"
+ },
+ {
+ "expression": {
+ "id": 10156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10154,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29813:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "34",
+ "id": 10155,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29823:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "29813:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10157,
+ "nodeType": "ExpressionStatement",
+ "src": "29813:11:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10160,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29856:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "id": 10163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10161,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29865:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 10162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29871:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "29865:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ }
+ },
+ "src": "29856:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10176,
+ "nodeType": "IfStatement",
+ "src": "29852:100:28",
+ "trueBody": {
+ "id": 10175,
+ "nodeType": "Block",
+ "src": "29874:78:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10165,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29892:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "/=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "id": 10168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29901:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 10167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29907:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "29901:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ }
+ },
+ "src": "29892:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10170,
+ "nodeType": "ExpressionStatement",
+ "src": "29892:16:28"
+ },
+ {
+ "expression": {
+ "id": 10173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10171,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "29926:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "32",
+ "id": 10172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29936:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "29926:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10174,
+ "nodeType": "ExpressionStatement",
+ "src": "29926:11:28"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10177,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10066,
+ "src": "29969:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "id": 10180,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10178,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29978:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 10179,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29984:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "29978:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ }
+ },
+ "src": "29969:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10187,
+ "nodeType": "IfStatement",
+ "src": "29965:66:28",
+ "trueBody": {
+ "id": 10186,
+ "nodeType": "Block",
+ "src": "29987:44:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10182,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "30005:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 10183,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30015:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "30005:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10185,
+ "nodeType": "ExpressionStatement",
+ "src": "30005:11:28"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "expression": {
+ "id": 10189,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10072,
+ "src": "30057:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 10070,
+ "id": 10190,
+ "nodeType": "Return",
+ "src": "30050:13:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10064,
+ "nodeType": "StructuredDocumentation",
+ "src": "29029:120:28",
+ "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."
+ },
+ "id": 10192,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log10",
+ "nameLocation": "29163:5:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10067,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10066,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "29177:5:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10192,
+ "src": "29169:13:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10065,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "29169:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29168:15:28"
+ },
+ "returnParameters": {
+ "id": 10070,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10069,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10192,
+ "src": "29207:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10068,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "29207:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29206:9:28"
+ },
+ "scope": 10360,
+ "src": "29154:916:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10225,
+ "nodeType": "Block",
+ "src": "30305:177:28",
+ "statements": [
+ {
+ "id": 10224,
+ "nodeType": "UncheckedBlock",
+ "src": "30315:161:28",
+ "statements": [
+ {
+ "assignments": [
+ 10204
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 10204,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "30347:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10224,
+ "src": "30339:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10203,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30339:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 10208,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 10206,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10195,
+ "src": "30362:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10205,
+ "name": "log10",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 10192,
+ 10226
+ ],
+ "referencedDeclaration": 10192,
+ "src": "30356:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 10207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30356:12:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "30339:29:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10209,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10204,
+ "src": "30389:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 10220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 10213,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10198,
+ "src": "30431:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 10212,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "30414:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 10214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30414:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 10215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30444:2:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "id": 10216,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10204,
+ "src": "30450:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "30444:12:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 10218,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10195,
+ "src": "30459:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "30444:20:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "30414:50:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10210,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "30398:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "30407:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "30398:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30398:67:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "30389:76:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 10202,
+ "id": 10223,
+ "nodeType": "Return",
+ "src": "30382:83:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10193,
+ "nodeType": "StructuredDocumentation",
+ "src": "30076:143:28",
+ "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
+ },
+ "id": 10226,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log10",
+ "nameLocation": "30233:5:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10199,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10195,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "30247:5:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10226,
+ "src": "30239:13:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10194,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30239:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10198,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "30263:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10226,
+ "src": "30254:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 10197,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 10196,
+ "name": "Rounding",
+ "nameLocations": [
+ "30254:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "30254:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "30254:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30238:34:28"
+ },
+ "returnParameters": {
+ "id": 10202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10201,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10226,
+ "src": "30296:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10200,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30296:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30295:9:28"
+ },
+ "scope": 10360,
+ "src": "30224:258:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10302,
+ "nodeType": "Block",
+ "src": "30800:675:28",
+ "statements": [
+ {
+ "expression": {
+ "id": 10243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10234,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "30882:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10239,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10237,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10229,
+ "src": "30902:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666",
+ "id": 10238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30906:34:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
+ "typeString": "int_const 3402...(31 digits omitted)...1455"
+ },
+ "value": "0xffffffffffffffffffffffffffffffff"
+ },
+ "src": "30902:38:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10235,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "30886:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "30895:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "30886:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30886:55:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "37",
+ "id": 10241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30945:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "src": "30886:60:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "30882:64:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10244,
+ "nodeType": "ExpressionStatement",
+ "src": "30882:64:28"
+ },
+ {
+ "expression": {
+ "id": 10257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10245,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31022:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10248,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10229,
+ "src": "31044:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10249,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31049:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31044:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10251,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31043:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307866666666666666666666666666666666",
+ "id": 10252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31054:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18446744073709551615_by_1",
+ "typeString": "int_const 18446744073709551615"
+ },
+ "value": "0xffffffffffffffff"
+ },
+ "src": "31043:29:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10246,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "31027:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "31036:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "31027:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31027:46:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "36",
+ "id": 10255,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31077:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "src": "31027:51:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31022:56:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10258,
+ "nodeType": "ExpressionStatement",
+ "src": "31022:56:28"
+ },
+ {
+ "expression": {
+ "id": 10271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10259,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31153:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10270,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10267,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10264,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10262,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10229,
+ "src": "31175:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10263,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31180:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31175:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10265,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31174:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666666666666666",
+ "id": 10266,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31185:10:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4294967295_by_1",
+ "typeString": "int_const 4294967295"
+ },
+ "value": "0xffffffff"
+ },
+ "src": "31174:21:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10260,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "31158:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "31167:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "31158:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31158:38:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "35",
+ "id": 10269,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31200:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "src": "31158:43:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31153:48:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10272,
+ "nodeType": "ExpressionStatement",
+ "src": "31153:48:28"
+ },
+ {
+ "expression": {
+ "id": 10285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 10273,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31276:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "|=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10284,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10276,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10229,
+ "src": "31298:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10277,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31303:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31298:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10279,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31297:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "307866666666",
+ "id": 10280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31308:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_65535_by_1",
+ "typeString": "int_const 65535"
+ },
+ "value": "0xffff"
+ },
+ "src": "31297:17:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10274,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "31281:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "31290:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "31281:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10282,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31281:34:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 10283,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31319:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "31281:39:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31276:44:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 10286,
+ "nodeType": "ExpressionStatement",
+ "src": "31276:44:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10289,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10287,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31426:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 10288,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31431:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "31426:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10290,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31425:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "|",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10293,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10229,
+ "src": "31453:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "id": 10294,
+ "name": "r",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10232,
+ "src": "31458:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31453:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10296,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31452:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30786666",
+ "id": 10297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31463:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "0xff"
+ },
+ "src": "31452:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10291,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "31436:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10292,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "31445:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "31436:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31436:32:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31425:43:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 10233,
+ "id": 10301,
+ "nodeType": "Return",
+ "src": "31418:50:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10227,
+ "nodeType": "StructuredDocumentation",
+ "src": "30488:246:28",
+ "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\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."
+ },
+ "id": 10303,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log256",
+ "nameLocation": "30748:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10230,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10229,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "30763:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10303,
+ "src": "30755:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10228,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30755:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30754:11:28"
+ },
+ "returnParameters": {
+ "id": 10233,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10232,
+ "mutability": "mutable",
+ "name": "r",
+ "nameLocation": "30797:1:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10303,
+ "src": "30789:9:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10231,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30789:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30788:11:28"
+ },
+ "scope": 10360,
+ "src": "30739:736:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10339,
+ "nodeType": "Block",
+ "src": "31712:184:28",
+ "statements": [
+ {
+ "id": 10338,
+ "nodeType": "UncheckedBlock",
+ "src": "31722:168:28",
+ "statements": [
+ {
+ "assignments": [
+ 10315
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 10315,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "31754:6:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10338,
+ "src": "31746:14:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10314,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "31746:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 10319,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 10317,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10306,
+ "src": "31770:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10316,
+ "name": "log256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 10303,
+ 10340
+ ],
+ "referencedDeclaration": 10303,
+ "src": "31763:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 10318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31763:13:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "31746:30:28"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10336,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10320,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10315,
+ "src": "31797:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 10334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 10324,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10309,
+ "src": "31839:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 10323,
+ "name": "unsignedRoundsUp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10359,
+ "src": "31822:16:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$",
+ "typeString": "function (enum Math.Rounding) pure returns (bool)"
+ }
+ },
+ "id": 10325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31822:26:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10333,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31",
+ "id": 10326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31852:1:28",
+ "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": 10329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10327,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10315,
+ "src": "31858:6:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<<",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 10328,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31868:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "31858:11:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 10330,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "31857:13:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31852:18:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 10332,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10306,
+ "src": "31873:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31852:26:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "31822:56:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 10321,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "31806:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 10322,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "31815:6:28",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "31806:15:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 10335,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31806:73:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "31797:82:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 10313,
+ "id": 10337,
+ "nodeType": "Return",
+ "src": "31790:89:28"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10304,
+ "nodeType": "StructuredDocumentation",
+ "src": "31481:144:28",
+ "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
+ },
+ "id": 10340,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "log256",
+ "nameLocation": "31639:6:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10306,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "31654:5:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10340,
+ "src": "31646:13:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10305,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "31646:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10309,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "31670:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10340,
+ "src": "31661:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 10308,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 10307,
+ "name": "Rounding",
+ "nameLocations": [
+ "31661:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "31661:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "31661:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31645:34:28"
+ },
+ "returnParameters": {
+ "id": 10313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10340,
+ "src": "31703:7:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10311,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "31703:7:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31702:9:28"
+ },
+ "scope": 10360,
+ "src": "31630:266:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10358,
+ "nodeType": "Block",
+ "src": "32094:48:28",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 10356,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "id": 10354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 10351,
+ "name": "rounding",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10344,
+ "src": "32117:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ ],
+ "id": 10350,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "32111:5:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 10349,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "32111:5:28",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "32111:15:28",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 10353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "32129:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "32111:19:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 10355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "32134:1:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "32111:24:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 10348,
+ "id": 10357,
+ "nodeType": "Return",
+ "src": "32104:31:28"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10341,
+ "nodeType": "StructuredDocumentation",
+ "src": "31902:113:28",
+ "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."
+ },
+ "id": 10359,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "unsignedRoundsUp",
+ "nameLocation": "32029:16:28",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10345,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10344,
+ "mutability": "mutable",
+ "name": "rounding",
+ "nameLocation": "32055:8:28",
+ "nodeType": "VariableDeclaration",
+ "scope": 10359,
+ "src": "32046:17:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ },
+ "typeName": {
+ "id": 10343,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 10342,
+ "name": "Rounding",
+ "nameLocations": [
+ "32046:8:28"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8751,
+ "src": "32046:8:28"
+ },
+ "referencedDeclaration": 8751,
+ "src": "32046:8:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Rounding_$8751",
+ "typeString": "enum Math.Rounding"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32045:19:28"
+ },
+ "returnParameters": {
+ "id": 10348,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10347,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10359,
+ "src": "32088:4:28",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 10346,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "32088:4:28",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32087:6:28"
+ },
+ "scope": 10360,
+ "src": "32020:122:28",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 10361,
+ "src": "281:31863:28",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "103:32042:28"
+ },
+ "id": 28
+ },
+ "@openzeppelin/contracts/utils/math/SafeCast.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol",
+ "exportedSymbols": {
+ "SafeCast": [
+ 12125
+ ]
+ },
+ "id": 12126,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 10362,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "192:24:29"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "SafeCast",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 10363,
+ "nodeType": "StructuredDocumentation",
+ "src": "218:550:29",
+ "text": " @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."
+ },
+ "fullyImplemented": true,
+ "id": 12125,
+ "linearizedBaseContracts": [
+ 12125
+ ],
+ "name": "SafeCast",
+ "nameLocation": "777:8:29",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 10364,
+ "nodeType": "StructuredDocumentation",
+ "src": "792:68:29",
+ "text": " @dev Value doesn't fit in an uint of `bits` size."
+ },
+ "errorSelector": "6dfcc650",
+ "id": 10370,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nameLocation": "871:30:29",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10369,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10366,
+ "mutability": "mutable",
+ "name": "bits",
+ "nameLocation": "908:4:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10370,
+ "src": "902:10:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 10365,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "902:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10368,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "922:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10370,
+ "src": "914:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10367,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "914:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "901:27:29"
+ },
+ "src": "865:64:29"
+ },
+ {
+ "documentation": {
+ "id": 10371,
+ "nodeType": "StructuredDocumentation",
+ "src": "935:75:29",
+ "text": " @dev An int value doesn't fit in an uint of `bits` size."
+ },
+ "errorSelector": "a8ce4432",
+ "id": 10375,
+ "name": "SafeCastOverflowedIntToUint",
+ "nameLocation": "1021:27:29",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10374,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10373,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1056:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10375,
+ "src": "1049:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 10372,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1049:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1048:14:29"
+ },
+ "src": "1015:48:29"
+ },
+ {
+ "documentation": {
+ "id": 10376,
+ "nodeType": "StructuredDocumentation",
+ "src": "1069:67:29",
+ "text": " @dev Value doesn't fit in an int of `bits` size."
+ },
+ "errorSelector": "327269a7",
+ "id": 10382,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nameLocation": "1147:29:29",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10381,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10378,
+ "mutability": "mutable",
+ "name": "bits",
+ "nameLocation": "1183:4:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10382,
+ "src": "1177:10:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 10377,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "1177:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10380,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1196:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10382,
+ "src": "1189:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 10379,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1189:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1176:26:29"
+ },
+ "src": "1141:62:29"
+ },
+ {
+ "documentation": {
+ "id": 10383,
+ "nodeType": "StructuredDocumentation",
+ "src": "1209:75:29",
+ "text": " @dev An uint value doesn't fit in an int of `bits` size."
+ },
+ "errorSelector": "24775e06",
+ "id": 10387,
+ "name": "SafeCastOverflowedUintToInt",
+ "nameLocation": "1295:27:29",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10386,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10385,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1331:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10387,
+ "src": "1323:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10384,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1323:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1322:15:29"
+ },
+ "src": "1289:49:29"
+ },
+ {
+ "body": {
+ "id": 10414,
+ "nodeType": "Block",
+ "src": "1695:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10395,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10390,
+ "src": "1709:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10398,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1722:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint248_$",
+ "typeString": "type(uint248)"
+ },
+ "typeName": {
+ "id": 10397,
+ "name": "uint248",
+ "nodeType": "ElementaryTypeName",
+ "src": "1722:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint248_$",
+ "typeString": "type(uint248)"
+ }
+ ],
+ "id": 10396,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "1717:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1717:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint248",
+ "typeString": "type(uint248)"
+ }
+ },
+ "id": 10400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1731:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "1717:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint248",
+ "typeString": "uint248"
+ }
+ },
+ "src": "1709:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10408,
+ "nodeType": "IfStatement",
+ "src": "1705:105:29",
+ "trueBody": {
+ "id": 10407,
+ "nodeType": "Block",
+ "src": "1736:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323438",
+ "id": 10403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1788:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_248_by_1",
+ "typeString": "int_const 248"
+ },
+ "value": "248"
+ },
+ {
+ "id": 10404,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10390,
+ "src": "1793:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_248_by_1",
+ "typeString": "int_const 248"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10402,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "1757:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1757:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10406,
+ "nodeType": "RevertStatement",
+ "src": "1750:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10411,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10390,
+ "src": "1834:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1826:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint248_$",
+ "typeString": "type(uint248)"
+ },
+ "typeName": {
+ "id": 10409,
+ "name": "uint248",
+ "nodeType": "ElementaryTypeName",
+ "src": "1826:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10412,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1826:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint248",
+ "typeString": "uint248"
+ }
+ },
+ "functionReturnParameters": 10394,
+ "id": 10413,
+ "nodeType": "Return",
+ "src": "1819:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10388,
+ "nodeType": "StructuredDocumentation",
+ "src": "1344:280:29",
+ "text": " @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"
+ },
+ "id": 10415,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint248",
+ "nameLocation": "1638:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10391,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10390,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1656:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10415,
+ "src": "1648:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10389,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1648:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1647:15:29"
+ },
+ "returnParameters": {
+ "id": 10394,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10393,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10415,
+ "src": "1686:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint248",
+ "typeString": "uint248"
+ },
+ "typeName": {
+ "id": 10392,
+ "name": "uint248",
+ "nodeType": "ElementaryTypeName",
+ "src": "1686:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint248",
+ "typeString": "uint248"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1685:9:29"
+ },
+ "scope": 12125,
+ "src": "1629:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10442,
+ "nodeType": "Block",
+ "src": "2204:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10429,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10423,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10418,
+ "src": "2218:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2231:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint240_$",
+ "typeString": "type(uint240)"
+ },
+ "typeName": {
+ "id": 10425,
+ "name": "uint240",
+ "nodeType": "ElementaryTypeName",
+ "src": "2231:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint240_$",
+ "typeString": "type(uint240)"
+ }
+ ],
+ "id": 10424,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "2226:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2226:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint240",
+ "typeString": "type(uint240)"
+ }
+ },
+ "id": 10428,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2240:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "2226:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint240",
+ "typeString": "uint240"
+ }
+ },
+ "src": "2218:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10436,
+ "nodeType": "IfStatement",
+ "src": "2214:105:29",
+ "trueBody": {
+ "id": 10435,
+ "nodeType": "Block",
+ "src": "2245:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323430",
+ "id": 10431,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2297:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_240_by_1",
+ "typeString": "int_const 240"
+ },
+ "value": "240"
+ },
+ {
+ "id": 10432,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10418,
+ "src": "2302:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_240_by_1",
+ "typeString": "int_const 240"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10430,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "2266:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2266:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10434,
+ "nodeType": "RevertStatement",
+ "src": "2259:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10439,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10418,
+ "src": "2343:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2335:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint240_$",
+ "typeString": "type(uint240)"
+ },
+ "typeName": {
+ "id": 10437,
+ "name": "uint240",
+ "nodeType": "ElementaryTypeName",
+ "src": "2335:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10440,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2335:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint240",
+ "typeString": "uint240"
+ }
+ },
+ "functionReturnParameters": 10422,
+ "id": 10441,
+ "nodeType": "Return",
+ "src": "2328:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10416,
+ "nodeType": "StructuredDocumentation",
+ "src": "1853:280:29",
+ "text": " @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"
+ },
+ "id": 10443,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint240",
+ "nameLocation": "2147:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10419,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10418,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2165:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10443,
+ "src": "2157:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10417,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2157:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2156:15:29"
+ },
+ "returnParameters": {
+ "id": 10422,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10421,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10443,
+ "src": "2195:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint240",
+ "typeString": "uint240"
+ },
+ "typeName": {
+ "id": 10420,
+ "name": "uint240",
+ "nodeType": "ElementaryTypeName",
+ "src": "2195:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint240",
+ "typeString": "uint240"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2194:9:29"
+ },
+ "scope": 12125,
+ "src": "2138:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10470,
+ "nodeType": "Block",
+ "src": "2713:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10451,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10446,
+ "src": "2727:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10454,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2740:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint232_$",
+ "typeString": "type(uint232)"
+ },
+ "typeName": {
+ "id": 10453,
+ "name": "uint232",
+ "nodeType": "ElementaryTypeName",
+ "src": "2740:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint232_$",
+ "typeString": "type(uint232)"
+ }
+ ],
+ "id": 10452,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "2735:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2735:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint232",
+ "typeString": "type(uint232)"
+ }
+ },
+ "id": 10456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "2749:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "2735:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint232",
+ "typeString": "uint232"
+ }
+ },
+ "src": "2727:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10464,
+ "nodeType": "IfStatement",
+ "src": "2723:105:29",
+ "trueBody": {
+ "id": 10463,
+ "nodeType": "Block",
+ "src": "2754:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323332",
+ "id": 10459,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2806:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_232_by_1",
+ "typeString": "int_const 232"
+ },
+ "value": "232"
+ },
+ {
+ "id": 10460,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10446,
+ "src": "2811:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_232_by_1",
+ "typeString": "int_const 232"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10458,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "2775:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10461,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2775:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10462,
+ "nodeType": "RevertStatement",
+ "src": "2768:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10467,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10446,
+ "src": "2852:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2844:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint232_$",
+ "typeString": "type(uint232)"
+ },
+ "typeName": {
+ "id": 10465,
+ "name": "uint232",
+ "nodeType": "ElementaryTypeName",
+ "src": "2844:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2844:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint232",
+ "typeString": "uint232"
+ }
+ },
+ "functionReturnParameters": 10450,
+ "id": 10469,
+ "nodeType": "Return",
+ "src": "2837:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10444,
+ "nodeType": "StructuredDocumentation",
+ "src": "2362:280:29",
+ "text": " @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"
+ },
+ "id": 10471,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint232",
+ "nameLocation": "2656:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10447,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10446,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2674:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10471,
+ "src": "2666:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10445,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2666:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2665:15:29"
+ },
+ "returnParameters": {
+ "id": 10450,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10449,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10471,
+ "src": "2704:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint232",
+ "typeString": "uint232"
+ },
+ "typeName": {
+ "id": 10448,
+ "name": "uint232",
+ "nodeType": "ElementaryTypeName",
+ "src": "2704:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint232",
+ "typeString": "uint232"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2703:9:29"
+ },
+ "scope": 12125,
+ "src": "2647:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10498,
+ "nodeType": "Block",
+ "src": "3222:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10479,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10474,
+ "src": "3236:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3249:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint224_$",
+ "typeString": "type(uint224)"
+ },
+ "typeName": {
+ "id": 10481,
+ "name": "uint224",
+ "nodeType": "ElementaryTypeName",
+ "src": "3249:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint224_$",
+ "typeString": "type(uint224)"
+ }
+ ],
+ "id": 10480,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "3244:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3244:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint224",
+ "typeString": "type(uint224)"
+ }
+ },
+ "id": 10484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "3258:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "3244:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint224",
+ "typeString": "uint224"
+ }
+ },
+ "src": "3236:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10492,
+ "nodeType": "IfStatement",
+ "src": "3232:105:29",
+ "trueBody": {
+ "id": 10491,
+ "nodeType": "Block",
+ "src": "3263:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323234",
+ "id": 10487,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3315:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_224_by_1",
+ "typeString": "int_const 224"
+ },
+ "value": "224"
+ },
+ {
+ "id": 10488,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10474,
+ "src": "3320:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_224_by_1",
+ "typeString": "int_const 224"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10486,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "3284:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10489,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3284:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10490,
+ "nodeType": "RevertStatement",
+ "src": "3277:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10495,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10474,
+ "src": "3361:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10494,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3353:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint224_$",
+ "typeString": "type(uint224)"
+ },
+ "typeName": {
+ "id": 10493,
+ "name": "uint224",
+ "nodeType": "ElementaryTypeName",
+ "src": "3353:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3353:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint224",
+ "typeString": "uint224"
+ }
+ },
+ "functionReturnParameters": 10478,
+ "id": 10497,
+ "nodeType": "Return",
+ "src": "3346:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10472,
+ "nodeType": "StructuredDocumentation",
+ "src": "2871:280:29",
+ "text": " @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"
+ },
+ "id": 10499,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint224",
+ "nameLocation": "3165:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10475,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10474,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3183:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10499,
+ "src": "3175:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10473,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3175:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3174:15:29"
+ },
+ "returnParameters": {
+ "id": 10478,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10477,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10499,
+ "src": "3213:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint224",
+ "typeString": "uint224"
+ },
+ "typeName": {
+ "id": 10476,
+ "name": "uint224",
+ "nodeType": "ElementaryTypeName",
+ "src": "3213:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint224",
+ "typeString": "uint224"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3212:9:29"
+ },
+ "scope": 12125,
+ "src": "3156:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10526,
+ "nodeType": "Block",
+ "src": "3731:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10513,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10507,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10502,
+ "src": "3745:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3758:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint216_$",
+ "typeString": "type(uint216)"
+ },
+ "typeName": {
+ "id": 10509,
+ "name": "uint216",
+ "nodeType": "ElementaryTypeName",
+ "src": "3758:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint216_$",
+ "typeString": "type(uint216)"
+ }
+ ],
+ "id": 10508,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "3753:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10511,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3753:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint216",
+ "typeString": "type(uint216)"
+ }
+ },
+ "id": 10512,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "3767:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "3753:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint216",
+ "typeString": "uint216"
+ }
+ },
+ "src": "3745:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10520,
+ "nodeType": "IfStatement",
+ "src": "3741:105:29",
+ "trueBody": {
+ "id": 10519,
+ "nodeType": "Block",
+ "src": "3772:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323136",
+ "id": 10515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3824:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_216_by_1",
+ "typeString": "int_const 216"
+ },
+ "value": "216"
+ },
+ {
+ "id": 10516,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10502,
+ "src": "3829:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_216_by_1",
+ "typeString": "int_const 216"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10514,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "3793:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3793:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10518,
+ "nodeType": "RevertStatement",
+ "src": "3786:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10523,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10502,
+ "src": "3870:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10522,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3862:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint216_$",
+ "typeString": "type(uint216)"
+ },
+ "typeName": {
+ "id": 10521,
+ "name": "uint216",
+ "nodeType": "ElementaryTypeName",
+ "src": "3862:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3862:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint216",
+ "typeString": "uint216"
+ }
+ },
+ "functionReturnParameters": 10506,
+ "id": 10525,
+ "nodeType": "Return",
+ "src": "3855:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10500,
+ "nodeType": "StructuredDocumentation",
+ "src": "3380:280:29",
+ "text": " @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"
+ },
+ "id": 10527,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint216",
+ "nameLocation": "3674:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10503,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10502,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3692:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10527,
+ "src": "3684:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10501,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3684:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3683:15:29"
+ },
+ "returnParameters": {
+ "id": 10506,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10505,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10527,
+ "src": "3722:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint216",
+ "typeString": "uint216"
+ },
+ "typeName": {
+ "id": 10504,
+ "name": "uint216",
+ "nodeType": "ElementaryTypeName",
+ "src": "3722:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint216",
+ "typeString": "uint216"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3721:9:29"
+ },
+ "scope": 12125,
+ "src": "3665:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10554,
+ "nodeType": "Block",
+ "src": "4240:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10541,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10535,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10530,
+ "src": "4254:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4267:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint208_$",
+ "typeString": "type(uint208)"
+ },
+ "typeName": {
+ "id": 10537,
+ "name": "uint208",
+ "nodeType": "ElementaryTypeName",
+ "src": "4267:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint208_$",
+ "typeString": "type(uint208)"
+ }
+ ],
+ "id": 10536,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "4262:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4262:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint208",
+ "typeString": "type(uint208)"
+ }
+ },
+ "id": 10540,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "4276:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "4262:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint208",
+ "typeString": "uint208"
+ }
+ },
+ "src": "4254:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10548,
+ "nodeType": "IfStatement",
+ "src": "4250:105:29",
+ "trueBody": {
+ "id": 10547,
+ "nodeType": "Block",
+ "src": "4281:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323038",
+ "id": 10543,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4333:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_208_by_1",
+ "typeString": "int_const 208"
+ },
+ "value": "208"
+ },
+ {
+ "id": 10544,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10530,
+ "src": "4338:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_208_by_1",
+ "typeString": "int_const 208"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10542,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "4302:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10545,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4302:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10546,
+ "nodeType": "RevertStatement",
+ "src": "4295:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10551,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10530,
+ "src": "4379:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4371:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint208_$",
+ "typeString": "type(uint208)"
+ },
+ "typeName": {
+ "id": 10549,
+ "name": "uint208",
+ "nodeType": "ElementaryTypeName",
+ "src": "4371:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10552,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4371:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint208",
+ "typeString": "uint208"
+ }
+ },
+ "functionReturnParameters": 10534,
+ "id": 10553,
+ "nodeType": "Return",
+ "src": "4364:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10528,
+ "nodeType": "StructuredDocumentation",
+ "src": "3889:280:29",
+ "text": " @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"
+ },
+ "id": 10555,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint208",
+ "nameLocation": "4183:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10531,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10530,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4201:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10555,
+ "src": "4193:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10529,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4193:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4192:15:29"
+ },
+ "returnParameters": {
+ "id": 10534,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10533,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10555,
+ "src": "4231:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint208",
+ "typeString": "uint208"
+ },
+ "typeName": {
+ "id": 10532,
+ "name": "uint208",
+ "nodeType": "ElementaryTypeName",
+ "src": "4231:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint208",
+ "typeString": "uint208"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4230:9:29"
+ },
+ "scope": 12125,
+ "src": "4174:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10582,
+ "nodeType": "Block",
+ "src": "4749:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10569,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10563,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10558,
+ "src": "4763:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4776:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint200_$",
+ "typeString": "type(uint200)"
+ },
+ "typeName": {
+ "id": 10565,
+ "name": "uint200",
+ "nodeType": "ElementaryTypeName",
+ "src": "4776:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint200_$",
+ "typeString": "type(uint200)"
+ }
+ ],
+ "id": 10564,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "4771:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4771:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint200",
+ "typeString": "type(uint200)"
+ }
+ },
+ "id": 10568,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "4785:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "4771:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint200",
+ "typeString": "uint200"
+ }
+ },
+ "src": "4763:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10576,
+ "nodeType": "IfStatement",
+ "src": "4759:105:29",
+ "trueBody": {
+ "id": 10575,
+ "nodeType": "Block",
+ "src": "4790:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323030",
+ "id": 10571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4842:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_200_by_1",
+ "typeString": "int_const 200"
+ },
+ "value": "200"
+ },
+ {
+ "id": 10572,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10558,
+ "src": "4847:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_200_by_1",
+ "typeString": "int_const 200"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10570,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "4811:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10573,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4811:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10574,
+ "nodeType": "RevertStatement",
+ "src": "4804:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10579,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10558,
+ "src": "4888:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4880:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint200_$",
+ "typeString": "type(uint200)"
+ },
+ "typeName": {
+ "id": 10577,
+ "name": "uint200",
+ "nodeType": "ElementaryTypeName",
+ "src": "4880:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4880:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint200",
+ "typeString": "uint200"
+ }
+ },
+ "functionReturnParameters": 10562,
+ "id": 10581,
+ "nodeType": "Return",
+ "src": "4873:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10556,
+ "nodeType": "StructuredDocumentation",
+ "src": "4398:280:29",
+ "text": " @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"
+ },
+ "id": 10583,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint200",
+ "nameLocation": "4692:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10559,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10558,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4710:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10583,
+ "src": "4702:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10557,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4702:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4701:15:29"
+ },
+ "returnParameters": {
+ "id": 10562,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10561,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10583,
+ "src": "4740:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint200",
+ "typeString": "uint200"
+ },
+ "typeName": {
+ "id": 10560,
+ "name": "uint200",
+ "nodeType": "ElementaryTypeName",
+ "src": "4740:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint200",
+ "typeString": "uint200"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4739:9:29"
+ },
+ "scope": 12125,
+ "src": "4683:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10610,
+ "nodeType": "Block",
+ "src": "5258:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10591,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10586,
+ "src": "5272:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5285:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint192_$",
+ "typeString": "type(uint192)"
+ },
+ "typeName": {
+ "id": 10593,
+ "name": "uint192",
+ "nodeType": "ElementaryTypeName",
+ "src": "5285:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint192_$",
+ "typeString": "type(uint192)"
+ }
+ ],
+ "id": 10592,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "5280:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5280:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint192",
+ "typeString": "type(uint192)"
+ }
+ },
+ "id": 10596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "5294:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "5280:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint192",
+ "typeString": "uint192"
+ }
+ },
+ "src": "5272:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10604,
+ "nodeType": "IfStatement",
+ "src": "5268:105:29",
+ "trueBody": {
+ "id": 10603,
+ "nodeType": "Block",
+ "src": "5299:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313932",
+ "id": 10599,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5351:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_192_by_1",
+ "typeString": "int_const 192"
+ },
+ "value": "192"
+ },
+ {
+ "id": 10600,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10586,
+ "src": "5356:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_192_by_1",
+ "typeString": "int_const 192"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10598,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "5320:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5320:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10602,
+ "nodeType": "RevertStatement",
+ "src": "5313:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10607,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10586,
+ "src": "5397:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10606,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5389:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint192_$",
+ "typeString": "type(uint192)"
+ },
+ "typeName": {
+ "id": 10605,
+ "name": "uint192",
+ "nodeType": "ElementaryTypeName",
+ "src": "5389:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10608,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5389:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint192",
+ "typeString": "uint192"
+ }
+ },
+ "functionReturnParameters": 10590,
+ "id": 10609,
+ "nodeType": "Return",
+ "src": "5382:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10584,
+ "nodeType": "StructuredDocumentation",
+ "src": "4907:280:29",
+ "text": " @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"
+ },
+ "id": 10611,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint192",
+ "nameLocation": "5201:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10587,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10586,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5219:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10611,
+ "src": "5211:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10585,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5211:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5210:15:29"
+ },
+ "returnParameters": {
+ "id": 10590,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10589,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10611,
+ "src": "5249:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint192",
+ "typeString": "uint192"
+ },
+ "typeName": {
+ "id": 10588,
+ "name": "uint192",
+ "nodeType": "ElementaryTypeName",
+ "src": "5249:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint192",
+ "typeString": "uint192"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5248:9:29"
+ },
+ "scope": 12125,
+ "src": "5192:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10638,
+ "nodeType": "Block",
+ "src": "5767:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10619,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10614,
+ "src": "5781:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5794:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint184_$",
+ "typeString": "type(uint184)"
+ },
+ "typeName": {
+ "id": 10621,
+ "name": "uint184",
+ "nodeType": "ElementaryTypeName",
+ "src": "5794:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint184_$",
+ "typeString": "type(uint184)"
+ }
+ ],
+ "id": 10620,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "5789:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5789:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint184",
+ "typeString": "type(uint184)"
+ }
+ },
+ "id": 10624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "5803:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "5789:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint184",
+ "typeString": "uint184"
+ }
+ },
+ "src": "5781:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10632,
+ "nodeType": "IfStatement",
+ "src": "5777:105:29",
+ "trueBody": {
+ "id": 10631,
+ "nodeType": "Block",
+ "src": "5808:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313834",
+ "id": 10627,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5860:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_184_by_1",
+ "typeString": "int_const 184"
+ },
+ "value": "184"
+ },
+ {
+ "id": 10628,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10614,
+ "src": "5865:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_184_by_1",
+ "typeString": "int_const 184"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10626,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "5829:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10629,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5829:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10630,
+ "nodeType": "RevertStatement",
+ "src": "5822:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10635,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10614,
+ "src": "5906:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10634,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5898:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint184_$",
+ "typeString": "type(uint184)"
+ },
+ "typeName": {
+ "id": 10633,
+ "name": "uint184",
+ "nodeType": "ElementaryTypeName",
+ "src": "5898:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10636,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5898:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint184",
+ "typeString": "uint184"
+ }
+ },
+ "functionReturnParameters": 10618,
+ "id": 10637,
+ "nodeType": "Return",
+ "src": "5891:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10612,
+ "nodeType": "StructuredDocumentation",
+ "src": "5416:280:29",
+ "text": " @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"
+ },
+ "id": 10639,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint184",
+ "nameLocation": "5710:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10615,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10614,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5728:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10639,
+ "src": "5720:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10613,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5720:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5719:15:29"
+ },
+ "returnParameters": {
+ "id": 10618,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10617,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10639,
+ "src": "5758:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint184",
+ "typeString": "uint184"
+ },
+ "typeName": {
+ "id": 10616,
+ "name": "uint184",
+ "nodeType": "ElementaryTypeName",
+ "src": "5758:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint184",
+ "typeString": "uint184"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5757:9:29"
+ },
+ "scope": 12125,
+ "src": "5701:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10666,
+ "nodeType": "Block",
+ "src": "6276:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10653,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10647,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10642,
+ "src": "6290:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6303:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint176_$",
+ "typeString": "type(uint176)"
+ },
+ "typeName": {
+ "id": 10649,
+ "name": "uint176",
+ "nodeType": "ElementaryTypeName",
+ "src": "6303:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint176_$",
+ "typeString": "type(uint176)"
+ }
+ ],
+ "id": 10648,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "6298:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10651,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6298:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint176",
+ "typeString": "type(uint176)"
+ }
+ },
+ "id": 10652,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6312:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "6298:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint176",
+ "typeString": "uint176"
+ }
+ },
+ "src": "6290:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10660,
+ "nodeType": "IfStatement",
+ "src": "6286:105:29",
+ "trueBody": {
+ "id": 10659,
+ "nodeType": "Block",
+ "src": "6317:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313736",
+ "id": 10655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6369:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_176_by_1",
+ "typeString": "int_const 176"
+ },
+ "value": "176"
+ },
+ {
+ "id": 10656,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10642,
+ "src": "6374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_176_by_1",
+ "typeString": "int_const 176"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10654,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "6338:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10657,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6338:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10658,
+ "nodeType": "RevertStatement",
+ "src": "6331:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10663,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10642,
+ "src": "6415:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10662,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6407:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint176_$",
+ "typeString": "type(uint176)"
+ },
+ "typeName": {
+ "id": 10661,
+ "name": "uint176",
+ "nodeType": "ElementaryTypeName",
+ "src": "6407:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10664,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6407:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint176",
+ "typeString": "uint176"
+ }
+ },
+ "functionReturnParameters": 10646,
+ "id": 10665,
+ "nodeType": "Return",
+ "src": "6400:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10640,
+ "nodeType": "StructuredDocumentation",
+ "src": "5925:280:29",
+ "text": " @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"
+ },
+ "id": 10667,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint176",
+ "nameLocation": "6219:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10643,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10642,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6237:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10667,
+ "src": "6229:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10641,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6229:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6228:15:29"
+ },
+ "returnParameters": {
+ "id": 10646,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10645,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10667,
+ "src": "6267:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint176",
+ "typeString": "uint176"
+ },
+ "typeName": {
+ "id": 10644,
+ "name": "uint176",
+ "nodeType": "ElementaryTypeName",
+ "src": "6267:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint176",
+ "typeString": "uint176"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6266:9:29"
+ },
+ "scope": 12125,
+ "src": "6210:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10694,
+ "nodeType": "Block",
+ "src": "6785:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10681,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10675,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10670,
+ "src": "6799:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6812:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint168_$",
+ "typeString": "type(uint168)"
+ },
+ "typeName": {
+ "id": 10677,
+ "name": "uint168",
+ "nodeType": "ElementaryTypeName",
+ "src": "6812:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint168_$",
+ "typeString": "type(uint168)"
+ }
+ ],
+ "id": 10676,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "6807:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10679,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6807:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint168",
+ "typeString": "type(uint168)"
+ }
+ },
+ "id": 10680,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "6821:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "6807:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint168",
+ "typeString": "uint168"
+ }
+ },
+ "src": "6799:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10688,
+ "nodeType": "IfStatement",
+ "src": "6795:105:29",
+ "trueBody": {
+ "id": 10687,
+ "nodeType": "Block",
+ "src": "6826:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313638",
+ "id": 10683,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6878:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_168_by_1",
+ "typeString": "int_const 168"
+ },
+ "value": "168"
+ },
+ {
+ "id": 10684,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10670,
+ "src": "6883:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_168_by_1",
+ "typeString": "int_const 168"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10682,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "6847:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10685,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6847:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10686,
+ "nodeType": "RevertStatement",
+ "src": "6840:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10691,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10670,
+ "src": "6924:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10690,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6916:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint168_$",
+ "typeString": "type(uint168)"
+ },
+ "typeName": {
+ "id": 10689,
+ "name": "uint168",
+ "nodeType": "ElementaryTypeName",
+ "src": "6916:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10692,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6916:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint168",
+ "typeString": "uint168"
+ }
+ },
+ "functionReturnParameters": 10674,
+ "id": 10693,
+ "nodeType": "Return",
+ "src": "6909:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10668,
+ "nodeType": "StructuredDocumentation",
+ "src": "6434:280:29",
+ "text": " @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"
+ },
+ "id": 10695,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint168",
+ "nameLocation": "6728:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10671,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10670,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6746:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10695,
+ "src": "6738:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6738:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6737:15:29"
+ },
+ "returnParameters": {
+ "id": 10674,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10673,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10695,
+ "src": "6776:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint168",
+ "typeString": "uint168"
+ },
+ "typeName": {
+ "id": 10672,
+ "name": "uint168",
+ "nodeType": "ElementaryTypeName",
+ "src": "6776:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint168",
+ "typeString": "uint168"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6775:9:29"
+ },
+ "scope": 12125,
+ "src": "6719:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10722,
+ "nodeType": "Block",
+ "src": "7294:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10709,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10703,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10698,
+ "src": "7308:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10706,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7321:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 10705,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "7321:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ }
+ ],
+ "id": 10704,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "7316:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7316:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint160",
+ "typeString": "type(uint160)"
+ }
+ },
+ "id": 10708,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7330:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "7316:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ },
+ "src": "7308:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10716,
+ "nodeType": "IfStatement",
+ "src": "7304:105:29",
+ "trueBody": {
+ "id": 10715,
+ "nodeType": "Block",
+ "src": "7335:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313630",
+ "id": 10711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7387:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_160_by_1",
+ "typeString": "int_const 160"
+ },
+ "value": "160"
+ },
+ {
+ "id": 10712,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10698,
+ "src": "7392:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_160_by_1",
+ "typeString": "int_const 160"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10710,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "7356:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10713,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7356:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10714,
+ "nodeType": "RevertStatement",
+ "src": "7349:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10719,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10698,
+ "src": "7433:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7425:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 10717,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "7425:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7425:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ },
+ "functionReturnParameters": 10702,
+ "id": 10721,
+ "nodeType": "Return",
+ "src": "7418:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10696,
+ "nodeType": "StructuredDocumentation",
+ "src": "6943:280:29",
+ "text": " @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"
+ },
+ "id": 10723,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint160",
+ "nameLocation": "7237:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10699,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10698,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7255:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10723,
+ "src": "7247:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10697,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7247:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7246:15:29"
+ },
+ "returnParameters": {
+ "id": 10702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10701,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10723,
+ "src": "7285:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ },
+ "typeName": {
+ "id": 10700,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "7285:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7284:9:29"
+ },
+ "scope": 12125,
+ "src": "7228:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10750,
+ "nodeType": "Block",
+ "src": "7803:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10737,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10731,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10726,
+ "src": "7817:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7830:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint152_$",
+ "typeString": "type(uint152)"
+ },
+ "typeName": {
+ "id": 10733,
+ "name": "uint152",
+ "nodeType": "ElementaryTypeName",
+ "src": "7830:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint152_$",
+ "typeString": "type(uint152)"
+ }
+ ],
+ "id": 10732,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "7825:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7825:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint152",
+ "typeString": "type(uint152)"
+ }
+ },
+ "id": 10736,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "7839:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "7825:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint152",
+ "typeString": "uint152"
+ }
+ },
+ "src": "7817:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10744,
+ "nodeType": "IfStatement",
+ "src": "7813:105:29",
+ "trueBody": {
+ "id": 10743,
+ "nodeType": "Block",
+ "src": "7844:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313532",
+ "id": 10739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7896:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_152_by_1",
+ "typeString": "int_const 152"
+ },
+ "value": "152"
+ },
+ {
+ "id": 10740,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10726,
+ "src": "7901:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_152_by_1",
+ "typeString": "int_const 152"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10738,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "7865:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7865:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10742,
+ "nodeType": "RevertStatement",
+ "src": "7858:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10747,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10726,
+ "src": "7942:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10746,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7934:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint152_$",
+ "typeString": "type(uint152)"
+ },
+ "typeName": {
+ "id": 10745,
+ "name": "uint152",
+ "nodeType": "ElementaryTypeName",
+ "src": "7934:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10748,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7934:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint152",
+ "typeString": "uint152"
+ }
+ },
+ "functionReturnParameters": 10730,
+ "id": 10749,
+ "nodeType": "Return",
+ "src": "7927:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10724,
+ "nodeType": "StructuredDocumentation",
+ "src": "7452:280:29",
+ "text": " @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"
+ },
+ "id": 10751,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint152",
+ "nameLocation": "7746:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10726,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7764:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10751,
+ "src": "7756:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10725,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7756:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7755:15:29"
+ },
+ "returnParameters": {
+ "id": 10730,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10729,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10751,
+ "src": "7794:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint152",
+ "typeString": "uint152"
+ },
+ "typeName": {
+ "id": 10728,
+ "name": "uint152",
+ "nodeType": "ElementaryTypeName",
+ "src": "7794:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint152",
+ "typeString": "uint152"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7793:9:29"
+ },
+ "scope": 12125,
+ "src": "7737:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10778,
+ "nodeType": "Block",
+ "src": "8312:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10765,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10759,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10754,
+ "src": "8326:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10762,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8339:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint144_$",
+ "typeString": "type(uint144)"
+ },
+ "typeName": {
+ "id": 10761,
+ "name": "uint144",
+ "nodeType": "ElementaryTypeName",
+ "src": "8339:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint144_$",
+ "typeString": "type(uint144)"
+ }
+ ],
+ "id": 10760,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "8334:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8334:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint144",
+ "typeString": "type(uint144)"
+ }
+ },
+ "id": 10764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8348:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "8334:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint144",
+ "typeString": "uint144"
+ }
+ },
+ "src": "8326:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10772,
+ "nodeType": "IfStatement",
+ "src": "8322:105:29",
+ "trueBody": {
+ "id": 10771,
+ "nodeType": "Block",
+ "src": "8353:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313434",
+ "id": 10767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8405:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_144_by_1",
+ "typeString": "int_const 144"
+ },
+ "value": "144"
+ },
+ {
+ "id": 10768,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10754,
+ "src": "8410:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_144_by_1",
+ "typeString": "int_const 144"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10766,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "8374:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8374:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10770,
+ "nodeType": "RevertStatement",
+ "src": "8367:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10775,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10754,
+ "src": "8451:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8443:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint144_$",
+ "typeString": "type(uint144)"
+ },
+ "typeName": {
+ "id": 10773,
+ "name": "uint144",
+ "nodeType": "ElementaryTypeName",
+ "src": "8443:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8443:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint144",
+ "typeString": "uint144"
+ }
+ },
+ "functionReturnParameters": 10758,
+ "id": 10777,
+ "nodeType": "Return",
+ "src": "8436:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10752,
+ "nodeType": "StructuredDocumentation",
+ "src": "7961:280:29",
+ "text": " @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"
+ },
+ "id": 10779,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint144",
+ "nameLocation": "8255:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10755,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10754,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8273:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10779,
+ "src": "8265:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10753,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8265:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8264:15:29"
+ },
+ "returnParameters": {
+ "id": 10758,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10757,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10779,
+ "src": "8303:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint144",
+ "typeString": "uint144"
+ },
+ "typeName": {
+ "id": 10756,
+ "name": "uint144",
+ "nodeType": "ElementaryTypeName",
+ "src": "8303:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint144",
+ "typeString": "uint144"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8302:9:29"
+ },
+ "scope": 12125,
+ "src": "8246:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10806,
+ "nodeType": "Block",
+ "src": "8821:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10787,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10782,
+ "src": "8835:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10790,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8848:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint136_$",
+ "typeString": "type(uint136)"
+ },
+ "typeName": {
+ "id": 10789,
+ "name": "uint136",
+ "nodeType": "ElementaryTypeName",
+ "src": "8848:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint136_$",
+ "typeString": "type(uint136)"
+ }
+ ],
+ "id": 10788,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "8843:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8843:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint136",
+ "typeString": "type(uint136)"
+ }
+ },
+ "id": 10792,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8857:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "8843:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint136",
+ "typeString": "uint136"
+ }
+ },
+ "src": "8835:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10800,
+ "nodeType": "IfStatement",
+ "src": "8831:105:29",
+ "trueBody": {
+ "id": 10799,
+ "nodeType": "Block",
+ "src": "8862:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313336",
+ "id": 10795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8914:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_136_by_1",
+ "typeString": "int_const 136"
+ },
+ "value": "136"
+ },
+ {
+ "id": 10796,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10782,
+ "src": "8919:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_136_by_1",
+ "typeString": "int_const 136"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10794,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "8883:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10797,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8883:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10798,
+ "nodeType": "RevertStatement",
+ "src": "8876:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10803,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10782,
+ "src": "8960:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10802,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8952:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint136_$",
+ "typeString": "type(uint136)"
+ },
+ "typeName": {
+ "id": 10801,
+ "name": "uint136",
+ "nodeType": "ElementaryTypeName",
+ "src": "8952:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8952:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint136",
+ "typeString": "uint136"
+ }
+ },
+ "functionReturnParameters": 10786,
+ "id": 10805,
+ "nodeType": "Return",
+ "src": "8945:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10780,
+ "nodeType": "StructuredDocumentation",
+ "src": "8470:280:29",
+ "text": " @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"
+ },
+ "id": 10807,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint136",
+ "nameLocation": "8764:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10783,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10782,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8782:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10807,
+ "src": "8774:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10781,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8774:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8773:15:29"
+ },
+ "returnParameters": {
+ "id": 10786,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10785,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10807,
+ "src": "8812:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint136",
+ "typeString": "uint136"
+ },
+ "typeName": {
+ "id": 10784,
+ "name": "uint136",
+ "nodeType": "ElementaryTypeName",
+ "src": "8812:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint136",
+ "typeString": "uint136"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8811:9:29"
+ },
+ "scope": 12125,
+ "src": "8755:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10834,
+ "nodeType": "Block",
+ "src": "9330:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10815,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10810,
+ "src": "9344:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10818,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9357:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint128_$",
+ "typeString": "type(uint128)"
+ },
+ "typeName": {
+ "id": 10817,
+ "name": "uint128",
+ "nodeType": "ElementaryTypeName",
+ "src": "9357:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint128_$",
+ "typeString": "type(uint128)"
+ }
+ ],
+ "id": 10816,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "9352:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10819,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9352:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint128",
+ "typeString": "type(uint128)"
+ }
+ },
+ "id": 10820,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "9366:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "9352:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "src": "9344:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10828,
+ "nodeType": "IfStatement",
+ "src": "9340:105:29",
+ "trueBody": {
+ "id": 10827,
+ "nodeType": "Block",
+ "src": "9371:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313238",
+ "id": 10823,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9423:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ {
+ "id": 10824,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10810,
+ "src": "9428:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10822,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "9392:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10825,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9392:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10826,
+ "nodeType": "RevertStatement",
+ "src": "9385:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10831,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10810,
+ "src": "9469:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9461:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint128_$",
+ "typeString": "type(uint128)"
+ },
+ "typeName": {
+ "id": 10829,
+ "name": "uint128",
+ "nodeType": "ElementaryTypeName",
+ "src": "9461:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9461:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "functionReturnParameters": 10814,
+ "id": 10833,
+ "nodeType": "Return",
+ "src": "9454:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10808,
+ "nodeType": "StructuredDocumentation",
+ "src": "8979:280:29",
+ "text": " @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"
+ },
+ "id": 10835,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint128",
+ "nameLocation": "9273:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10811,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10810,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9291:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10835,
+ "src": "9283:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10809,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9283:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9282:15:29"
+ },
+ "returnParameters": {
+ "id": 10814,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10813,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10835,
+ "src": "9321:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ },
+ "typeName": {
+ "id": 10812,
+ "name": "uint128",
+ "nodeType": "ElementaryTypeName",
+ "src": "9321:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9320:9:29"
+ },
+ "scope": 12125,
+ "src": "9264:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10862,
+ "nodeType": "Block",
+ "src": "9839:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10849,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10843,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10838,
+ "src": "9853:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9866:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint120_$",
+ "typeString": "type(uint120)"
+ },
+ "typeName": {
+ "id": 10845,
+ "name": "uint120",
+ "nodeType": "ElementaryTypeName",
+ "src": "9866:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint120_$",
+ "typeString": "type(uint120)"
+ }
+ ],
+ "id": 10844,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "9861:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9861:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint120",
+ "typeString": "type(uint120)"
+ }
+ },
+ "id": 10848,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "9875:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "9861:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint120",
+ "typeString": "uint120"
+ }
+ },
+ "src": "9853:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10856,
+ "nodeType": "IfStatement",
+ "src": "9849:105:29",
+ "trueBody": {
+ "id": 10855,
+ "nodeType": "Block",
+ "src": "9880:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313230",
+ "id": 10851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9932:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_120_by_1",
+ "typeString": "int_const 120"
+ },
+ "value": "120"
+ },
+ {
+ "id": 10852,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10838,
+ "src": "9937:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_120_by_1",
+ "typeString": "int_const 120"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10850,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "9901:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10853,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9901:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10854,
+ "nodeType": "RevertStatement",
+ "src": "9894:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10859,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10838,
+ "src": "9978:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9970:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint120_$",
+ "typeString": "type(uint120)"
+ },
+ "typeName": {
+ "id": 10857,
+ "name": "uint120",
+ "nodeType": "ElementaryTypeName",
+ "src": "9970:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9970:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint120",
+ "typeString": "uint120"
+ }
+ },
+ "functionReturnParameters": 10842,
+ "id": 10861,
+ "nodeType": "Return",
+ "src": "9963:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10836,
+ "nodeType": "StructuredDocumentation",
+ "src": "9488:280:29",
+ "text": " @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"
+ },
+ "id": 10863,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint120",
+ "nameLocation": "9782:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10839,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10838,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9800:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10863,
+ "src": "9792:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10837,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9792:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9791:15:29"
+ },
+ "returnParameters": {
+ "id": 10842,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10841,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10863,
+ "src": "9830:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint120",
+ "typeString": "uint120"
+ },
+ "typeName": {
+ "id": 10840,
+ "name": "uint120",
+ "nodeType": "ElementaryTypeName",
+ "src": "9830:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint120",
+ "typeString": "uint120"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9829:9:29"
+ },
+ "scope": 12125,
+ "src": "9773:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10890,
+ "nodeType": "Block",
+ "src": "10348:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10877,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10871,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10866,
+ "src": "10362:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10874,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10375:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint112_$",
+ "typeString": "type(uint112)"
+ },
+ "typeName": {
+ "id": 10873,
+ "name": "uint112",
+ "nodeType": "ElementaryTypeName",
+ "src": "10375:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint112_$",
+ "typeString": "type(uint112)"
+ }
+ ],
+ "id": 10872,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10370:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10370:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint112",
+ "typeString": "type(uint112)"
+ }
+ },
+ "id": 10876,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10384:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "10370:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint112",
+ "typeString": "uint112"
+ }
+ },
+ "src": "10362:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10884,
+ "nodeType": "IfStatement",
+ "src": "10358:105:29",
+ "trueBody": {
+ "id": 10883,
+ "nodeType": "Block",
+ "src": "10389:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313132",
+ "id": 10879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10441:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_112_by_1",
+ "typeString": "int_const 112"
+ },
+ "value": "112"
+ },
+ {
+ "id": 10880,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10866,
+ "src": "10446:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_112_by_1",
+ "typeString": "int_const 112"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10878,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "10410:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10410:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10882,
+ "nodeType": "RevertStatement",
+ "src": "10403:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10887,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10866,
+ "src": "10487:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10479:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint112_$",
+ "typeString": "type(uint112)"
+ },
+ "typeName": {
+ "id": 10885,
+ "name": "uint112",
+ "nodeType": "ElementaryTypeName",
+ "src": "10479:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10479:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint112",
+ "typeString": "uint112"
+ }
+ },
+ "functionReturnParameters": 10870,
+ "id": 10889,
+ "nodeType": "Return",
+ "src": "10472:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10864,
+ "nodeType": "StructuredDocumentation",
+ "src": "9997:280:29",
+ "text": " @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"
+ },
+ "id": 10891,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint112",
+ "nameLocation": "10291:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10867,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10866,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10309:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10891,
+ "src": "10301:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10865,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10301:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10300:15:29"
+ },
+ "returnParameters": {
+ "id": 10870,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10869,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10891,
+ "src": "10339:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint112",
+ "typeString": "uint112"
+ },
+ "typeName": {
+ "id": 10868,
+ "name": "uint112",
+ "nodeType": "ElementaryTypeName",
+ "src": "10339:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint112",
+ "typeString": "uint112"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10338:9:29"
+ },
+ "scope": 12125,
+ "src": "10282:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10918,
+ "nodeType": "Block",
+ "src": "10857:152:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10899,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10894,
+ "src": "10871:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10884:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint104_$",
+ "typeString": "type(uint104)"
+ },
+ "typeName": {
+ "id": 10901,
+ "name": "uint104",
+ "nodeType": "ElementaryTypeName",
+ "src": "10884:7:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint104_$",
+ "typeString": "type(uint104)"
+ }
+ ],
+ "id": 10900,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10879:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10903,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10879:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint104",
+ "typeString": "type(uint104)"
+ }
+ },
+ "id": 10904,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10893:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "10879:17:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint104",
+ "typeString": "uint104"
+ }
+ },
+ "src": "10871:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10912,
+ "nodeType": "IfStatement",
+ "src": "10867:105:29",
+ "trueBody": {
+ "id": 10911,
+ "nodeType": "Block",
+ "src": "10898:74:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313034",
+ "id": 10907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10950:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_104_by_1",
+ "typeString": "int_const 104"
+ },
+ "value": "104"
+ },
+ {
+ "id": 10908,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10894,
+ "src": "10955:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_104_by_1",
+ "typeString": "int_const 104"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10906,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "10919:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10919:42:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10910,
+ "nodeType": "RevertStatement",
+ "src": "10912:49:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10915,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10894,
+ "src": "10996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10988:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint104_$",
+ "typeString": "type(uint104)"
+ },
+ "typeName": {
+ "id": 10913,
+ "name": "uint104",
+ "nodeType": "ElementaryTypeName",
+ "src": "10988:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10988:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint104",
+ "typeString": "uint104"
+ }
+ },
+ "functionReturnParameters": 10898,
+ "id": 10917,
+ "nodeType": "Return",
+ "src": "10981:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10892,
+ "nodeType": "StructuredDocumentation",
+ "src": "10506:280:29",
+ "text": " @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"
+ },
+ "id": 10919,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint104",
+ "nameLocation": "10800:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10895,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10894,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10818:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10919,
+ "src": "10810:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10893,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10810:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10809:15:29"
+ },
+ "returnParameters": {
+ "id": 10898,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10897,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10919,
+ "src": "10848:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint104",
+ "typeString": "uint104"
+ },
+ "typeName": {
+ "id": 10896,
+ "name": "uint104",
+ "nodeType": "ElementaryTypeName",
+ "src": "10848:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint104",
+ "typeString": "uint104"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10847:9:29"
+ },
+ "scope": 12125,
+ "src": "10791:218:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10946,
+ "nodeType": "Block",
+ "src": "11360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10927,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10922,
+ "src": "11374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10930,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint96_$",
+ "typeString": "type(uint96)"
+ },
+ "typeName": {
+ "id": 10929,
+ "name": "uint96",
+ "nodeType": "ElementaryTypeName",
+ "src": "11387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint96_$",
+ "typeString": "type(uint96)"
+ }
+ ],
+ "id": 10928,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "11382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint96",
+ "typeString": "type(uint96)"
+ }
+ },
+ "id": 10932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "11395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "11382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "src": "11374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10940,
+ "nodeType": "IfStatement",
+ "src": "11370:103:29",
+ "trueBody": {
+ "id": 10939,
+ "nodeType": "Block",
+ "src": "11400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3936",
+ "id": 10935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ "value": "96"
+ },
+ {
+ "id": 10936,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10922,
+ "src": "11456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10934,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "11421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10938,
+ "nodeType": "RevertStatement",
+ "src": "11414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10943,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10922,
+ "src": "11496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10942,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint96_$",
+ "typeString": "type(uint96)"
+ },
+ "typeName": {
+ "id": 10941,
+ "name": "uint96",
+ "nodeType": "ElementaryTypeName",
+ "src": "11489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10944,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "functionReturnParameters": 10926,
+ "id": 10945,
+ "nodeType": "Return",
+ "src": "11482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10920,
+ "nodeType": "StructuredDocumentation",
+ "src": "11015:276:29",
+ "text": " @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"
+ },
+ "id": 10947,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint96",
+ "nameLocation": "11305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10923,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10922,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "11322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10947,
+ "src": "11314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10921,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11313:15:29"
+ },
+ "returnParameters": {
+ "id": 10926,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10925,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10947,
+ "src": "11352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ },
+ "typeName": {
+ "id": 10924,
+ "name": "uint96",
+ "nodeType": "ElementaryTypeName",
+ "src": "11352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11351:8:29"
+ },
+ "scope": 12125,
+ "src": "11296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 10974,
+ "nodeType": "Block",
+ "src": "11860:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10961,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10955,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10950,
+ "src": "11874:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10958,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11887:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint88_$",
+ "typeString": "type(uint88)"
+ },
+ "typeName": {
+ "id": 10957,
+ "name": "uint88",
+ "nodeType": "ElementaryTypeName",
+ "src": "11887:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint88_$",
+ "typeString": "type(uint88)"
+ }
+ ],
+ "id": 10956,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "11882:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11882:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint88",
+ "typeString": "type(uint88)"
+ }
+ },
+ "id": 10960,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "11895:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "11882:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint88",
+ "typeString": "uint88"
+ }
+ },
+ "src": "11874:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10968,
+ "nodeType": "IfStatement",
+ "src": "11870:103:29",
+ "trueBody": {
+ "id": 10967,
+ "nodeType": "Block",
+ "src": "11900:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3838",
+ "id": 10963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11952:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_88_by_1",
+ "typeString": "int_const 88"
+ },
+ "value": "88"
+ },
+ {
+ "id": 10964,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10950,
+ "src": "11956:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_88_by_1",
+ "typeString": "int_const 88"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10962,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "11921:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11921:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10966,
+ "nodeType": "RevertStatement",
+ "src": "11914:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10971,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10950,
+ "src": "11996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10970,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint88_$",
+ "typeString": "type(uint88)"
+ },
+ "typeName": {
+ "id": 10969,
+ "name": "uint88",
+ "nodeType": "ElementaryTypeName",
+ "src": "11989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 10972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint88",
+ "typeString": "uint88"
+ }
+ },
+ "functionReturnParameters": 10954,
+ "id": 10973,
+ "nodeType": "Return",
+ "src": "11982:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10948,
+ "nodeType": "StructuredDocumentation",
+ "src": "11515:276:29",
+ "text": " @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"
+ },
+ "id": 10975,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint88",
+ "nameLocation": "11805:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10951,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10950,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "11822:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 10975,
+ "src": "11814:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10949,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11814:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11813:15:29"
+ },
+ "returnParameters": {
+ "id": 10954,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10953,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 10975,
+ "src": "11852:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint88",
+ "typeString": "uint88"
+ },
+ "typeName": {
+ "id": 10952,
+ "name": "uint88",
+ "nodeType": "ElementaryTypeName",
+ "src": "11852:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint88",
+ "typeString": "uint88"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11851:8:29"
+ },
+ "scope": 12125,
+ "src": "11796:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11002,
+ "nodeType": "Block",
+ "src": "12360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 10989,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 10983,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10978,
+ "src": "12374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10986,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint80_$",
+ "typeString": "type(uint80)"
+ },
+ "typeName": {
+ "id": 10985,
+ "name": "uint80",
+ "nodeType": "ElementaryTypeName",
+ "src": "12387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint80_$",
+ "typeString": "type(uint80)"
+ }
+ ],
+ "id": 10984,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "12382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 10987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint80",
+ "typeString": "type(uint80)"
+ }
+ },
+ "id": 10988,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "12395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "12382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint80",
+ "typeString": "uint80"
+ }
+ },
+ "src": "12374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 10996,
+ "nodeType": "IfStatement",
+ "src": "12370:103:29",
+ "trueBody": {
+ "id": 10995,
+ "nodeType": "Block",
+ "src": "12400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3830",
+ "id": 10991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ "value": "80"
+ },
+ {
+ "id": 10992,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10978,
+ "src": "12456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10990,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "12421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 10993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 10994,
+ "nodeType": "RevertStatement",
+ "src": "12414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 10999,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10978,
+ "src": "12496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 10998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint80_$",
+ "typeString": "type(uint80)"
+ },
+ "typeName": {
+ "id": 10997,
+ "name": "uint80",
+ "nodeType": "ElementaryTypeName",
+ "src": "12489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint80",
+ "typeString": "uint80"
+ }
+ },
+ "functionReturnParameters": 10982,
+ "id": 11001,
+ "nodeType": "Return",
+ "src": "12482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 10976,
+ "nodeType": "StructuredDocumentation",
+ "src": "12015:276:29",
+ "text": " @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"
+ },
+ "id": 11003,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint80",
+ "nameLocation": "12305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 10979,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10978,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11003,
+ "src": "12314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 10977,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12313:15:29"
+ },
+ "returnParameters": {
+ "id": 10982,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10981,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11003,
+ "src": "12352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint80",
+ "typeString": "uint80"
+ },
+ "typeName": {
+ "id": 10980,
+ "name": "uint80",
+ "nodeType": "ElementaryTypeName",
+ "src": "12352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint80",
+ "typeString": "uint80"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12351:8:29"
+ },
+ "scope": 12125,
+ "src": "12296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11030,
+ "nodeType": "Block",
+ "src": "12860:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11017,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11011,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11006,
+ "src": "12874:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11014,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12887:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint72_$",
+ "typeString": "type(uint72)"
+ },
+ "typeName": {
+ "id": 11013,
+ "name": "uint72",
+ "nodeType": "ElementaryTypeName",
+ "src": "12887:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint72_$",
+ "typeString": "type(uint72)"
+ }
+ ],
+ "id": 11012,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "12882:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12882:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint72",
+ "typeString": "type(uint72)"
+ }
+ },
+ "id": 11016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "12895:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "12882:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint72",
+ "typeString": "uint72"
+ }
+ },
+ "src": "12874:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11024,
+ "nodeType": "IfStatement",
+ "src": "12870:103:29",
+ "trueBody": {
+ "id": 11023,
+ "nodeType": "Block",
+ "src": "12900:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3732",
+ "id": 11019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12952:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_72_by_1",
+ "typeString": "int_const 72"
+ },
+ "value": "72"
+ },
+ {
+ "id": 11020,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11006,
+ "src": "12956:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_72_by_1",
+ "typeString": "int_const 72"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11018,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "12921:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12921:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11022,
+ "nodeType": "RevertStatement",
+ "src": "12914:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11027,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11006,
+ "src": "12996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11026,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint72_$",
+ "typeString": "type(uint72)"
+ },
+ "typeName": {
+ "id": 11025,
+ "name": "uint72",
+ "nodeType": "ElementaryTypeName",
+ "src": "12989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11028,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint72",
+ "typeString": "uint72"
+ }
+ },
+ "functionReturnParameters": 11010,
+ "id": 11029,
+ "nodeType": "Return",
+ "src": "12982:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11004,
+ "nodeType": "StructuredDocumentation",
+ "src": "12515:276:29",
+ "text": " @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"
+ },
+ "id": 11031,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint72",
+ "nameLocation": "12805:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11007,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11006,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12822:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11031,
+ "src": "12814:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11005,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12814:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12813:15:29"
+ },
+ "returnParameters": {
+ "id": 11010,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11009,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11031,
+ "src": "12852:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint72",
+ "typeString": "uint72"
+ },
+ "typeName": {
+ "id": 11008,
+ "name": "uint72",
+ "nodeType": "ElementaryTypeName",
+ "src": "12852:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint72",
+ "typeString": "uint72"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12851:8:29"
+ },
+ "scope": 12125,
+ "src": "12796:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11058,
+ "nodeType": "Block",
+ "src": "13360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11039,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11034,
+ "src": "13374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 11041,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "13387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ }
+ ],
+ "id": 11040,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "13382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint64",
+ "typeString": "type(uint64)"
+ }
+ },
+ "id": 11044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "13395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "13382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "13374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11052,
+ "nodeType": "IfStatement",
+ "src": "13370:103:29",
+ "trueBody": {
+ "id": 11051,
+ "nodeType": "Block",
+ "src": "13400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3634",
+ "id": 11047,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ {
+ "id": 11048,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11034,
+ "src": "13456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11046,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "13421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11050,
+ "nodeType": "RevertStatement",
+ "src": "13414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11055,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11034,
+ "src": "13496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 11053,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "13489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "functionReturnParameters": 11038,
+ "id": 11057,
+ "nodeType": "Return",
+ "src": "13482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11032,
+ "nodeType": "StructuredDocumentation",
+ "src": "13015:276:29",
+ "text": " @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"
+ },
+ "id": 11059,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint64",
+ "nameLocation": "13305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11035,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11034,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "13322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11059,
+ "src": "13314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11033,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13313:15:29"
+ },
+ "returnParameters": {
+ "id": 11038,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11037,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11059,
+ "src": "13352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 11036,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "13352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13351:8:29"
+ },
+ "scope": 12125,
+ "src": "13296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11086,
+ "nodeType": "Block",
+ "src": "13860:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11067,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11062,
+ "src": "13874:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13887:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint56_$",
+ "typeString": "type(uint56)"
+ },
+ "typeName": {
+ "id": 11069,
+ "name": "uint56",
+ "nodeType": "ElementaryTypeName",
+ "src": "13887:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint56_$",
+ "typeString": "type(uint56)"
+ }
+ ],
+ "id": 11068,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "13882:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11071,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13882:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint56",
+ "typeString": "type(uint56)"
+ }
+ },
+ "id": 11072,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "13895:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "13882:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint56",
+ "typeString": "uint56"
+ }
+ },
+ "src": "13874:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11080,
+ "nodeType": "IfStatement",
+ "src": "13870:103:29",
+ "trueBody": {
+ "id": 11079,
+ "nodeType": "Block",
+ "src": "13900:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3536",
+ "id": 11075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13952:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_56_by_1",
+ "typeString": "int_const 56"
+ },
+ "value": "56"
+ },
+ {
+ "id": 11076,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11062,
+ "src": "13956:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_56_by_1",
+ "typeString": "int_const 56"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11074,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "13921:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11077,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13921:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11078,
+ "nodeType": "RevertStatement",
+ "src": "13914:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11083,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11062,
+ "src": "13996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint56_$",
+ "typeString": "type(uint56)"
+ },
+ "typeName": {
+ "id": 11081,
+ "name": "uint56",
+ "nodeType": "ElementaryTypeName",
+ "src": "13989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint56",
+ "typeString": "uint56"
+ }
+ },
+ "functionReturnParameters": 11066,
+ "id": 11085,
+ "nodeType": "Return",
+ "src": "13982:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11060,
+ "nodeType": "StructuredDocumentation",
+ "src": "13515:276:29",
+ "text": " @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"
+ },
+ "id": 11087,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint56",
+ "nameLocation": "13805:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11063,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11062,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "13822:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11087,
+ "src": "13814:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11061,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13814:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13813:15:29"
+ },
+ "returnParameters": {
+ "id": 11066,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11065,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11087,
+ "src": "13852:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint56",
+ "typeString": "uint56"
+ },
+ "typeName": {
+ "id": 11064,
+ "name": "uint56",
+ "nodeType": "ElementaryTypeName",
+ "src": "13852:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint56",
+ "typeString": "uint56"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13851:8:29"
+ },
+ "scope": 12125,
+ "src": "13796:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11114,
+ "nodeType": "Block",
+ "src": "14360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11095,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11090,
+ "src": "14374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint48_$",
+ "typeString": "type(uint48)"
+ },
+ "typeName": {
+ "id": 11097,
+ "name": "uint48",
+ "nodeType": "ElementaryTypeName",
+ "src": "14387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint48_$",
+ "typeString": "type(uint48)"
+ }
+ ],
+ "id": 11096,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "14382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint48",
+ "typeString": "type(uint48)"
+ }
+ },
+ "id": 11100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "14395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "14382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint48",
+ "typeString": "uint48"
+ }
+ },
+ "src": "14374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11108,
+ "nodeType": "IfStatement",
+ "src": "14370:103:29",
+ "trueBody": {
+ "id": 11107,
+ "nodeType": "Block",
+ "src": "14400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3438",
+ "id": 11103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_48_by_1",
+ "typeString": "int_const 48"
+ },
+ "value": "48"
+ },
+ {
+ "id": 11104,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11090,
+ "src": "14456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_48_by_1",
+ "typeString": "int_const 48"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11102,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "14421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11106,
+ "nodeType": "RevertStatement",
+ "src": "14414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11111,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11090,
+ "src": "14496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11110,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint48_$",
+ "typeString": "type(uint48)"
+ },
+ "typeName": {
+ "id": 11109,
+ "name": "uint48",
+ "nodeType": "ElementaryTypeName",
+ "src": "14489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint48",
+ "typeString": "uint48"
+ }
+ },
+ "functionReturnParameters": 11094,
+ "id": 11113,
+ "nodeType": "Return",
+ "src": "14482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11088,
+ "nodeType": "StructuredDocumentation",
+ "src": "14015:276:29",
+ "text": " @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"
+ },
+ "id": 11115,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint48",
+ "nameLocation": "14305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11091,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11090,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "14322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11115,
+ "src": "14314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11089,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14313:15:29"
+ },
+ "returnParameters": {
+ "id": 11094,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11093,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11115,
+ "src": "14352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint48",
+ "typeString": "uint48"
+ },
+ "typeName": {
+ "id": 11092,
+ "name": "uint48",
+ "nodeType": "ElementaryTypeName",
+ "src": "14352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint48",
+ "typeString": "uint48"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14351:8:29"
+ },
+ "scope": 12125,
+ "src": "14296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11142,
+ "nodeType": "Block",
+ "src": "14860:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11129,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11123,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11118,
+ "src": "14874:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11126,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14887:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint40_$",
+ "typeString": "type(uint40)"
+ },
+ "typeName": {
+ "id": 11125,
+ "name": "uint40",
+ "nodeType": "ElementaryTypeName",
+ "src": "14887:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint40_$",
+ "typeString": "type(uint40)"
+ }
+ ],
+ "id": 11124,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "14882:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14882:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint40",
+ "typeString": "type(uint40)"
+ }
+ },
+ "id": 11128,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "14895:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "14882:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint40",
+ "typeString": "uint40"
+ }
+ },
+ "src": "14874:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11136,
+ "nodeType": "IfStatement",
+ "src": "14870:103:29",
+ "trueBody": {
+ "id": 11135,
+ "nodeType": "Block",
+ "src": "14900:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3430",
+ "id": 11131,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14952:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ "value": "40"
+ },
+ {
+ "id": 11132,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11118,
+ "src": "14956:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11130,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "14921:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11133,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14921:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11134,
+ "nodeType": "RevertStatement",
+ "src": "14914:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11139,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11118,
+ "src": "14996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11138,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint40_$",
+ "typeString": "type(uint40)"
+ },
+ "typeName": {
+ "id": 11137,
+ "name": "uint40",
+ "nodeType": "ElementaryTypeName",
+ "src": "14989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11140,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint40",
+ "typeString": "uint40"
+ }
+ },
+ "functionReturnParameters": 11122,
+ "id": 11141,
+ "nodeType": "Return",
+ "src": "14982:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11116,
+ "nodeType": "StructuredDocumentation",
+ "src": "14515:276:29",
+ "text": " @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"
+ },
+ "id": 11143,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint40",
+ "nameLocation": "14805:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11118,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "14822:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11143,
+ "src": "14814:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11117,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14814:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14813:15:29"
+ },
+ "returnParameters": {
+ "id": 11122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11121,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11143,
+ "src": "14852:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint40",
+ "typeString": "uint40"
+ },
+ "typeName": {
+ "id": 11120,
+ "name": "uint40",
+ "nodeType": "ElementaryTypeName",
+ "src": "14852:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint40",
+ "typeString": "uint40"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14851:8:29"
+ },
+ "scope": 12125,
+ "src": "14796:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11170,
+ "nodeType": "Block",
+ "src": "15360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11151,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11146,
+ "src": "15374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint32_$",
+ "typeString": "type(uint32)"
+ },
+ "typeName": {
+ "id": 11153,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint32_$",
+ "typeString": "type(uint32)"
+ }
+ ],
+ "id": 11152,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "15382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11155,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint32",
+ "typeString": "type(uint32)"
+ }
+ },
+ "id": 11156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "15382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "src": "15374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11164,
+ "nodeType": "IfStatement",
+ "src": "15370:103:29",
+ "trueBody": {
+ "id": 11163,
+ "nodeType": "Block",
+ "src": "15400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3332",
+ "id": 11159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ {
+ "id": 11160,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11146,
+ "src": "15456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11158,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "15421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11161,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11162,
+ "nodeType": "RevertStatement",
+ "src": "15414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11167,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11146,
+ "src": "15496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint32_$",
+ "typeString": "type(uint32)"
+ },
+ "typeName": {
+ "id": 11165,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "functionReturnParameters": 11150,
+ "id": 11169,
+ "nodeType": "Return",
+ "src": "15482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11144,
+ "nodeType": "StructuredDocumentation",
+ "src": "15015:276:29",
+ "text": " @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"
+ },
+ "id": 11171,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint32",
+ "nameLocation": "15305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11147,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11146,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "15322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11171,
+ "src": "15314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11145,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15313:15:29"
+ },
+ "returnParameters": {
+ "id": 11150,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11149,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11171,
+ "src": "15352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 11148,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15351:8:29"
+ },
+ "scope": 12125,
+ "src": "15296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11198,
+ "nodeType": "Block",
+ "src": "15860:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11179,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11174,
+ "src": "15874:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15887:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint24_$",
+ "typeString": "type(uint24)"
+ },
+ "typeName": {
+ "id": 11181,
+ "name": "uint24",
+ "nodeType": "ElementaryTypeName",
+ "src": "15887:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint24_$",
+ "typeString": "type(uint24)"
+ }
+ ],
+ "id": 11180,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "15882:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11183,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15882:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint24",
+ "typeString": "type(uint24)"
+ }
+ },
+ "id": 11184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "15895:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "15882:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint24",
+ "typeString": "uint24"
+ }
+ },
+ "src": "15874:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11192,
+ "nodeType": "IfStatement",
+ "src": "15870:103:29",
+ "trueBody": {
+ "id": 11191,
+ "nodeType": "Block",
+ "src": "15900:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3234",
+ "id": 11187,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15952:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ "value": "24"
+ },
+ {
+ "id": 11188,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11174,
+ "src": "15956:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11186,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "15921:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11189,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15921:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11190,
+ "nodeType": "RevertStatement",
+ "src": "15914:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11195,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11174,
+ "src": "15996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11194,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "15989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint24_$",
+ "typeString": "type(uint24)"
+ },
+ "typeName": {
+ "id": 11193,
+ "name": "uint24",
+ "nodeType": "ElementaryTypeName",
+ "src": "15989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11196,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint24",
+ "typeString": "uint24"
+ }
+ },
+ "functionReturnParameters": 11178,
+ "id": 11197,
+ "nodeType": "Return",
+ "src": "15982:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11172,
+ "nodeType": "StructuredDocumentation",
+ "src": "15515:276:29",
+ "text": " @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"
+ },
+ "id": 11199,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint24",
+ "nameLocation": "15805:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11175,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11174,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "15822:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11199,
+ "src": "15814:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11173,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15814:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15813:15:29"
+ },
+ "returnParameters": {
+ "id": 11178,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11177,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11199,
+ "src": "15852:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint24",
+ "typeString": "uint24"
+ },
+ "typeName": {
+ "id": 11176,
+ "name": "uint24",
+ "nodeType": "ElementaryTypeName",
+ "src": "15852:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint24",
+ "typeString": "uint24"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15851:8:29"
+ },
+ "scope": 12125,
+ "src": "15796:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11226,
+ "nodeType": "Block",
+ "src": "16360:149:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11207,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11202,
+ "src": "16374:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16387:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint16_$",
+ "typeString": "type(uint16)"
+ },
+ "typeName": {
+ "id": 11209,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "16387:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint16_$",
+ "typeString": "type(uint16)"
+ }
+ ],
+ "id": 11208,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "16382:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16382:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint16",
+ "typeString": "type(uint16)"
+ }
+ },
+ "id": 11212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "16395:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "16382:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "src": "16374:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11220,
+ "nodeType": "IfStatement",
+ "src": "16370:103:29",
+ "trueBody": {
+ "id": 11219,
+ "nodeType": "Block",
+ "src": "16400:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3136",
+ "id": 11215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16452:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ {
+ "id": 11216,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11202,
+ "src": "16456:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11214,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "16421:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16421:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11218,
+ "nodeType": "RevertStatement",
+ "src": "16414:48:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11223,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11202,
+ "src": "16496:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16489:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint16_$",
+ "typeString": "type(uint16)"
+ },
+ "typeName": {
+ "id": 11221,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "16489:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16489:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "functionReturnParameters": 11206,
+ "id": 11225,
+ "nodeType": "Return",
+ "src": "16482:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11200,
+ "nodeType": "StructuredDocumentation",
+ "src": "16015:276:29",
+ "text": " @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"
+ },
+ "id": 11227,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint16",
+ "nameLocation": "16305:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11203,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11202,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "16322:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11227,
+ "src": "16314:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11201,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16314:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16313:15:29"
+ },
+ "returnParameters": {
+ "id": 11206,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11205,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11227,
+ "src": "16352:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 11204,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "16352:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16351:8:29"
+ },
+ "scope": 12125,
+ "src": "16296:213:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11254,
+ "nodeType": "Block",
+ "src": "16854:146:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 11241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11235,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11230,
+ "src": "16868:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16881:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 11237,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16881:5:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ }
+ ],
+ "id": 11236,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "16876:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 11239,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16876:11:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint8",
+ "typeString": "type(uint8)"
+ }
+ },
+ "id": 11240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "16888:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "16876:15:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "16868:23:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11248,
+ "nodeType": "IfStatement",
+ "src": "16864:101:29",
+ "trueBody": {
+ "id": 11247,
+ "nodeType": "Block",
+ "src": "16893:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "38",
+ "id": 11243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16945:1:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ {
+ "id": 11244,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11230,
+ "src": "16948:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11242,
+ "name": "SafeCastOverflowedUintDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10370,
+ "src": "16914:30:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint8,uint256) pure returns (error)"
+ }
+ },
+ "id": 11245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16914:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11246,
+ "nodeType": "RevertStatement",
+ "src": "16907:47:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11251,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11230,
+ "src": "16987:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 11250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "16981:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint8_$",
+ "typeString": "type(uint8)"
+ },
+ "typeName": {
+ "id": 11249,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16981:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16981:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "functionReturnParameters": 11234,
+ "id": 11253,
+ "nodeType": "Return",
+ "src": "16974:19:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11228,
+ "nodeType": "StructuredDocumentation",
+ "src": "16515:272:29",
+ "text": " @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"
+ },
+ "id": 11255,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint8",
+ "nameLocation": "16801:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11231,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11230,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "16817:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11255,
+ "src": "16809:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11229,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16809:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16808:15:29"
+ },
+ "returnParameters": {
+ "id": 11234,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11233,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11255,
+ "src": "16847:5:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 11232,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "16847:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16846:7:29"
+ },
+ "scope": 12125,
+ "src": "16792:208:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11277,
+ "nodeType": "Block",
+ "src": "17236:128:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11265,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11263,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11258,
+ "src": "17250:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 11264,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17258:1:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "17250:9:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11271,
+ "nodeType": "IfStatement",
+ "src": "17246:81:29",
+ "trueBody": {
+ "id": 11270,
+ "nodeType": "Block",
+ "src": "17261:66:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 11267,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11258,
+ "src": "17310:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11266,
+ "name": "SafeCastOverflowedIntToUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10375,
+ "src": "17282:27:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$",
+ "typeString": "function (int256) pure returns (error)"
+ }
+ },
+ "id": 11268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17282:34:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11269,
+ "nodeType": "RevertStatement",
+ "src": "17275:41:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 11274,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11258,
+ "src": "17351:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "17343:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 11272,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17343:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17343:14:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 11262,
+ "id": 11276,
+ "nodeType": "Return",
+ "src": "17336:21:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11256,
+ "nodeType": "StructuredDocumentation",
+ "src": "17006:160:29",
+ "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."
+ },
+ "id": 11278,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint256",
+ "nameLocation": "17180:9:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11259,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11258,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "17197:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11278,
+ "src": "17190:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11257,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17190:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17189:14:29"
+ },
+ "returnParameters": {
+ "id": 11262,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11261,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 11278,
+ "src": "17227:7:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 11260,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17227:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17226:9:29"
+ },
+ "scope": 12125,
+ "src": "17171:193:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11303,
+ "nodeType": "Block",
+ "src": "17761:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11286,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11284,
+ "src": "17771:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11289,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11281,
+ "src": "17791:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11288,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "17784:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int248_$",
+ "typeString": "type(int248)"
+ },
+ "typeName": {
+ "id": 11287,
+ "name": "int248",
+ "nodeType": "ElementaryTypeName",
+ "src": "17784:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17784:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ }
+ },
+ "src": "17771:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ }
+ },
+ "id": 11292,
+ "nodeType": "ExpressionStatement",
+ "src": "17771:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11293,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11284,
+ "src": "17811:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11294,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11281,
+ "src": "17825:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "17811:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11302,
+ "nodeType": "IfStatement",
+ "src": "17807:98:29",
+ "trueBody": {
+ "id": 11301,
+ "nodeType": "Block",
+ "src": "17832:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323438",
+ "id": 11297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17883:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_248_by_1",
+ "typeString": "int_const 248"
+ },
+ "value": "248"
+ },
+ {
+ "id": 11298,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11281,
+ "src": "17888:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_248_by_1",
+ "typeString": "int_const 248"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11296,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "17853:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17853:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11300,
+ "nodeType": "RevertStatement",
+ "src": "17846:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11279,
+ "nodeType": "StructuredDocumentation",
+ "src": "17370:312:29",
+ "text": " @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"
+ },
+ "id": 11304,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt248",
+ "nameLocation": "17696:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11282,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11281,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "17712:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11304,
+ "src": "17705:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11280,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17705:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17704:14:29"
+ },
+ "returnParameters": {
+ "id": 11285,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11284,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "17749:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11304,
+ "src": "17742:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ },
+ "typeName": {
+ "id": 11283,
+ "name": "int248",
+ "nodeType": "ElementaryTypeName",
+ "src": "17742:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int248",
+ "typeString": "int248"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17741:19:29"
+ },
+ "scope": 12125,
+ "src": "17687:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11329,
+ "nodeType": "Block",
+ "src": "18308:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11312,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11310,
+ "src": "18318:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11315,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11307,
+ "src": "18338:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11314,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "18331:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int240_$",
+ "typeString": "type(int240)"
+ },
+ "typeName": {
+ "id": 11313,
+ "name": "int240",
+ "nodeType": "ElementaryTypeName",
+ "src": "18331:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18331:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ }
+ },
+ "src": "18318:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ }
+ },
+ "id": 11318,
+ "nodeType": "ExpressionStatement",
+ "src": "18318:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11321,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11319,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11310,
+ "src": "18358:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11320,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11307,
+ "src": "18372:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "18358:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11328,
+ "nodeType": "IfStatement",
+ "src": "18354:98:29",
+ "trueBody": {
+ "id": 11327,
+ "nodeType": "Block",
+ "src": "18379:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323430",
+ "id": 11323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18430:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_240_by_1",
+ "typeString": "int_const 240"
+ },
+ "value": "240"
+ },
+ {
+ "id": 11324,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11307,
+ "src": "18435:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_240_by_1",
+ "typeString": "int_const 240"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11322,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "18400:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18400:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11326,
+ "nodeType": "RevertStatement",
+ "src": "18393:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11305,
+ "nodeType": "StructuredDocumentation",
+ "src": "17917:312:29",
+ "text": " @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"
+ },
+ "id": 11330,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt240",
+ "nameLocation": "18243:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11308,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11307,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "18259:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11330,
+ "src": "18252:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11306,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18252:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18251:14:29"
+ },
+ "returnParameters": {
+ "id": 11311,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11310,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "18296:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11330,
+ "src": "18289:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ },
+ "typeName": {
+ "id": 11309,
+ "name": "int240",
+ "nodeType": "ElementaryTypeName",
+ "src": "18289:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int240",
+ "typeString": "int240"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18288:19:29"
+ },
+ "scope": 12125,
+ "src": "18234:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11355,
+ "nodeType": "Block",
+ "src": "18855:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11338,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11336,
+ "src": "18865:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11341,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11333,
+ "src": "18885:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11340,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "18878:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int232_$",
+ "typeString": "type(int232)"
+ },
+ "typeName": {
+ "id": 11339,
+ "name": "int232",
+ "nodeType": "ElementaryTypeName",
+ "src": "18878:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11342,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18878:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ }
+ },
+ "src": "18865:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ }
+ },
+ "id": 11344,
+ "nodeType": "ExpressionStatement",
+ "src": "18865:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11345,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11336,
+ "src": "18905:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11346,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11333,
+ "src": "18919:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "18905:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11354,
+ "nodeType": "IfStatement",
+ "src": "18901:98:29",
+ "trueBody": {
+ "id": 11353,
+ "nodeType": "Block",
+ "src": "18926:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323332",
+ "id": 11349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18977:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_232_by_1",
+ "typeString": "int_const 232"
+ },
+ "value": "232"
+ },
+ {
+ "id": 11350,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11333,
+ "src": "18982:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_232_by_1",
+ "typeString": "int_const 232"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11348,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "18947:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11351,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18947:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11352,
+ "nodeType": "RevertStatement",
+ "src": "18940:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11331,
+ "nodeType": "StructuredDocumentation",
+ "src": "18464:312:29",
+ "text": " @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"
+ },
+ "id": 11356,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt232",
+ "nameLocation": "18790:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11334,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11333,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "18806:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11356,
+ "src": "18799:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11332,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18799:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18798:14:29"
+ },
+ "returnParameters": {
+ "id": 11337,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11336,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "18843:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11356,
+ "src": "18836:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ },
+ "typeName": {
+ "id": 11335,
+ "name": "int232",
+ "nodeType": "ElementaryTypeName",
+ "src": "18836:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int232",
+ "typeString": "int232"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18835:19:29"
+ },
+ "scope": 12125,
+ "src": "18781:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11381,
+ "nodeType": "Block",
+ "src": "19402:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11364,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11362,
+ "src": "19412:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11367,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11359,
+ "src": "19432:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11366,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "19425:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int224_$",
+ "typeString": "type(int224)"
+ },
+ "typeName": {
+ "id": 11365,
+ "name": "int224",
+ "nodeType": "ElementaryTypeName",
+ "src": "19425:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19425:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ }
+ },
+ "src": "19412:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ }
+ },
+ "id": 11370,
+ "nodeType": "ExpressionStatement",
+ "src": "19412:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11371,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11362,
+ "src": "19452:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11372,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11359,
+ "src": "19466:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "19452:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11380,
+ "nodeType": "IfStatement",
+ "src": "19448:98:29",
+ "trueBody": {
+ "id": 11379,
+ "nodeType": "Block",
+ "src": "19473:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323234",
+ "id": 11375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19524:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_224_by_1",
+ "typeString": "int_const 224"
+ },
+ "value": "224"
+ },
+ {
+ "id": 11376,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11359,
+ "src": "19529:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_224_by_1",
+ "typeString": "int_const 224"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11374,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "19494:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11377,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19494:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11378,
+ "nodeType": "RevertStatement",
+ "src": "19487:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11357,
+ "nodeType": "StructuredDocumentation",
+ "src": "19011:312:29",
+ "text": " @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"
+ },
+ "id": 11382,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt224",
+ "nameLocation": "19337:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11360,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11359,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "19353:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11382,
+ "src": "19346:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11358,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19346:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19345:14:29"
+ },
+ "returnParameters": {
+ "id": 11363,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11362,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "19390:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11382,
+ "src": "19383:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ },
+ "typeName": {
+ "id": 11361,
+ "name": "int224",
+ "nodeType": "ElementaryTypeName",
+ "src": "19383:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int224",
+ "typeString": "int224"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19382:19:29"
+ },
+ "scope": 12125,
+ "src": "19328:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11407,
+ "nodeType": "Block",
+ "src": "19949:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11390,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11388,
+ "src": "19959:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11393,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11385,
+ "src": "19979:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11392,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "19972:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int216_$",
+ "typeString": "type(int216)"
+ },
+ "typeName": {
+ "id": 11391,
+ "name": "int216",
+ "nodeType": "ElementaryTypeName",
+ "src": "19972:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19972:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ }
+ },
+ "src": "19959:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ }
+ },
+ "id": 11396,
+ "nodeType": "ExpressionStatement",
+ "src": "19959:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11397,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11388,
+ "src": "19999:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11398,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11385,
+ "src": "20013:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "19999:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11406,
+ "nodeType": "IfStatement",
+ "src": "19995:98:29",
+ "trueBody": {
+ "id": 11405,
+ "nodeType": "Block",
+ "src": "20020:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323136",
+ "id": 11401,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20071:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_216_by_1",
+ "typeString": "int_const 216"
+ },
+ "value": "216"
+ },
+ {
+ "id": 11402,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11385,
+ "src": "20076:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_216_by_1",
+ "typeString": "int_const 216"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11400,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "20041:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20041:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11404,
+ "nodeType": "RevertStatement",
+ "src": "20034:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11383,
+ "nodeType": "StructuredDocumentation",
+ "src": "19558:312:29",
+ "text": " @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"
+ },
+ "id": 11408,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt216",
+ "nameLocation": "19884:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11386,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11385,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "19900:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11408,
+ "src": "19893:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11384,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19893:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19892:14:29"
+ },
+ "returnParameters": {
+ "id": 11389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11388,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "19937:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11408,
+ "src": "19930:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ },
+ "typeName": {
+ "id": 11387,
+ "name": "int216",
+ "nodeType": "ElementaryTypeName",
+ "src": "19930:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int216",
+ "typeString": "int216"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19929:19:29"
+ },
+ "scope": 12125,
+ "src": "19875:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11433,
+ "nodeType": "Block",
+ "src": "20496:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11421,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11416,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11414,
+ "src": "20506:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11419,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11411,
+ "src": "20526:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "20519:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int208_$",
+ "typeString": "type(int208)"
+ },
+ "typeName": {
+ "id": 11417,
+ "name": "int208",
+ "nodeType": "ElementaryTypeName",
+ "src": "20519:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20519:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ }
+ },
+ "src": "20506:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ }
+ },
+ "id": 11422,
+ "nodeType": "ExpressionStatement",
+ "src": "20506:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11423,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11414,
+ "src": "20546:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11424,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11411,
+ "src": "20560:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "20546:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11432,
+ "nodeType": "IfStatement",
+ "src": "20542:98:29",
+ "trueBody": {
+ "id": 11431,
+ "nodeType": "Block",
+ "src": "20567:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323038",
+ "id": 11427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20618:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_208_by_1",
+ "typeString": "int_const 208"
+ },
+ "value": "208"
+ },
+ {
+ "id": 11428,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11411,
+ "src": "20623:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_208_by_1",
+ "typeString": "int_const 208"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11426,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "20588:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11429,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20588:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11430,
+ "nodeType": "RevertStatement",
+ "src": "20581:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11409,
+ "nodeType": "StructuredDocumentation",
+ "src": "20105:312:29",
+ "text": " @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"
+ },
+ "id": 11434,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt208",
+ "nameLocation": "20431:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11412,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11411,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "20447:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11434,
+ "src": "20440:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11410,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20440:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20439:14:29"
+ },
+ "returnParameters": {
+ "id": 11415,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11414,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "20484:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11434,
+ "src": "20477:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ },
+ "typeName": {
+ "id": 11413,
+ "name": "int208",
+ "nodeType": "ElementaryTypeName",
+ "src": "20477:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int208",
+ "typeString": "int208"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20476:19:29"
+ },
+ "scope": 12125,
+ "src": "20422:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11459,
+ "nodeType": "Block",
+ "src": "21043:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11442,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11440,
+ "src": "21053:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11445,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11437,
+ "src": "21073:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "21066:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int200_$",
+ "typeString": "type(int200)"
+ },
+ "typeName": {
+ "id": 11443,
+ "name": "int200",
+ "nodeType": "ElementaryTypeName",
+ "src": "21066:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21066:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ }
+ },
+ "src": "21053:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ }
+ },
+ "id": 11448,
+ "nodeType": "ExpressionStatement",
+ "src": "21053:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11451,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11449,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11440,
+ "src": "21093:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11450,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11437,
+ "src": "21107:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "21093:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11458,
+ "nodeType": "IfStatement",
+ "src": "21089:98:29",
+ "trueBody": {
+ "id": 11457,
+ "nodeType": "Block",
+ "src": "21114:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "323030",
+ "id": 11453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21165:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_200_by_1",
+ "typeString": "int_const 200"
+ },
+ "value": "200"
+ },
+ {
+ "id": 11454,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11437,
+ "src": "21170:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_200_by_1",
+ "typeString": "int_const 200"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11452,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "21135:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21135:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11456,
+ "nodeType": "RevertStatement",
+ "src": "21128:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11435,
+ "nodeType": "StructuredDocumentation",
+ "src": "20652:312:29",
+ "text": " @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"
+ },
+ "id": 11460,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt200",
+ "nameLocation": "20978:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11438,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11437,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "20994:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11460,
+ "src": "20987:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11436,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20987:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20986:14:29"
+ },
+ "returnParameters": {
+ "id": 11441,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11440,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "21031:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11460,
+ "src": "21024:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ },
+ "typeName": {
+ "id": 11439,
+ "name": "int200",
+ "nodeType": "ElementaryTypeName",
+ "src": "21024:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int200",
+ "typeString": "int200"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21023:19:29"
+ },
+ "scope": 12125,
+ "src": "20969:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11485,
+ "nodeType": "Block",
+ "src": "21590:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11468,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11466,
+ "src": "21600:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11471,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11463,
+ "src": "21620:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "21613:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int192_$",
+ "typeString": "type(int192)"
+ },
+ "typeName": {
+ "id": 11469,
+ "name": "int192",
+ "nodeType": "ElementaryTypeName",
+ "src": "21613:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21613:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ }
+ },
+ "src": "21600:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ }
+ },
+ "id": 11474,
+ "nodeType": "ExpressionStatement",
+ "src": "21600:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11475,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11466,
+ "src": "21640:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11476,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11463,
+ "src": "21654:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "21640:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11484,
+ "nodeType": "IfStatement",
+ "src": "21636:98:29",
+ "trueBody": {
+ "id": 11483,
+ "nodeType": "Block",
+ "src": "21661:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313932",
+ "id": 11479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21712:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_192_by_1",
+ "typeString": "int_const 192"
+ },
+ "value": "192"
+ },
+ {
+ "id": 11480,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11463,
+ "src": "21717:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_192_by_1",
+ "typeString": "int_const 192"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11478,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "21682:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11481,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21682:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11482,
+ "nodeType": "RevertStatement",
+ "src": "21675:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11461,
+ "nodeType": "StructuredDocumentation",
+ "src": "21199:312:29",
+ "text": " @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"
+ },
+ "id": 11486,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt192",
+ "nameLocation": "21525:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11463,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "21541:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11486,
+ "src": "21534:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11462,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21534:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21533:14:29"
+ },
+ "returnParameters": {
+ "id": 11467,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11466,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "21578:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11486,
+ "src": "21571:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ },
+ "typeName": {
+ "id": 11465,
+ "name": "int192",
+ "nodeType": "ElementaryTypeName",
+ "src": "21571:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int192",
+ "typeString": "int192"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21570:19:29"
+ },
+ "scope": 12125,
+ "src": "21516:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11511,
+ "nodeType": "Block",
+ "src": "22137:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11494,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11492,
+ "src": "22147:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11497,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11489,
+ "src": "22167:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "22160:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int184_$",
+ "typeString": "type(int184)"
+ },
+ "typeName": {
+ "id": 11495,
+ "name": "int184",
+ "nodeType": "ElementaryTypeName",
+ "src": "22160:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11498,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22160:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ }
+ },
+ "src": "22147:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ }
+ },
+ "id": 11500,
+ "nodeType": "ExpressionStatement",
+ "src": "22147:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11501,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11492,
+ "src": "22187:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11502,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11489,
+ "src": "22201:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "22187:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11510,
+ "nodeType": "IfStatement",
+ "src": "22183:98:29",
+ "trueBody": {
+ "id": 11509,
+ "nodeType": "Block",
+ "src": "22208:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313834",
+ "id": 11505,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22259:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_184_by_1",
+ "typeString": "int_const 184"
+ },
+ "value": "184"
+ },
+ {
+ "id": 11506,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11489,
+ "src": "22264:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_184_by_1",
+ "typeString": "int_const 184"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11504,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "22229:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22229:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11508,
+ "nodeType": "RevertStatement",
+ "src": "22222:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11487,
+ "nodeType": "StructuredDocumentation",
+ "src": "21746:312:29",
+ "text": " @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"
+ },
+ "id": 11512,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt184",
+ "nameLocation": "22072:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11490,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11489,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "22088:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11512,
+ "src": "22081:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11488,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22081:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22080:14:29"
+ },
+ "returnParameters": {
+ "id": 11493,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11492,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "22125:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11512,
+ "src": "22118:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ },
+ "typeName": {
+ "id": 11491,
+ "name": "int184",
+ "nodeType": "ElementaryTypeName",
+ "src": "22118:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int184",
+ "typeString": "int184"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22117:19:29"
+ },
+ "scope": 12125,
+ "src": "22063:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11537,
+ "nodeType": "Block",
+ "src": "22684:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11520,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11518,
+ "src": "22694:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11523,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11515,
+ "src": "22714:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11522,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "22707:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int176_$",
+ "typeString": "type(int176)"
+ },
+ "typeName": {
+ "id": 11521,
+ "name": "int176",
+ "nodeType": "ElementaryTypeName",
+ "src": "22707:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22707:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ }
+ },
+ "src": "22694:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ }
+ },
+ "id": 11526,
+ "nodeType": "ExpressionStatement",
+ "src": "22694:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11529,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11527,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11518,
+ "src": "22734:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11528,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11515,
+ "src": "22748:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "22734:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11536,
+ "nodeType": "IfStatement",
+ "src": "22730:98:29",
+ "trueBody": {
+ "id": 11535,
+ "nodeType": "Block",
+ "src": "22755:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313736",
+ "id": 11531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "22806:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_176_by_1",
+ "typeString": "int_const 176"
+ },
+ "value": "176"
+ },
+ {
+ "id": 11532,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11515,
+ "src": "22811:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_176_by_1",
+ "typeString": "int_const 176"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11530,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "22776:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11533,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22776:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11534,
+ "nodeType": "RevertStatement",
+ "src": "22769:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11513,
+ "nodeType": "StructuredDocumentation",
+ "src": "22293:312:29",
+ "text": " @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"
+ },
+ "id": 11538,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt176",
+ "nameLocation": "22619:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11516,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11515,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "22635:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11538,
+ "src": "22628:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11514,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22628:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22627:14:29"
+ },
+ "returnParameters": {
+ "id": 11519,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11518,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "22672:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11538,
+ "src": "22665:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ },
+ "typeName": {
+ "id": 11517,
+ "name": "int176",
+ "nodeType": "ElementaryTypeName",
+ "src": "22665:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int176",
+ "typeString": "int176"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22664:19:29"
+ },
+ "scope": 12125,
+ "src": "22610:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11563,
+ "nodeType": "Block",
+ "src": "23231:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11546,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11544,
+ "src": "23241:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11549,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11541,
+ "src": "23261:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11548,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "23254:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int168_$",
+ "typeString": "type(int168)"
+ },
+ "typeName": {
+ "id": 11547,
+ "name": "int168",
+ "nodeType": "ElementaryTypeName",
+ "src": "23254:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23254:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ }
+ },
+ "src": "23241:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ }
+ },
+ "id": 11552,
+ "nodeType": "ExpressionStatement",
+ "src": "23241:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11555,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11553,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11544,
+ "src": "23281:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11554,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11541,
+ "src": "23295:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "23281:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11562,
+ "nodeType": "IfStatement",
+ "src": "23277:98:29",
+ "trueBody": {
+ "id": 11561,
+ "nodeType": "Block",
+ "src": "23302:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313638",
+ "id": 11557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23353:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_168_by_1",
+ "typeString": "int_const 168"
+ },
+ "value": "168"
+ },
+ {
+ "id": 11558,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11541,
+ "src": "23358:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_168_by_1",
+ "typeString": "int_const 168"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11556,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "23323:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23323:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11560,
+ "nodeType": "RevertStatement",
+ "src": "23316:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11539,
+ "nodeType": "StructuredDocumentation",
+ "src": "22840:312:29",
+ "text": " @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"
+ },
+ "id": 11564,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt168",
+ "nameLocation": "23166:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11542,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11541,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "23182:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11564,
+ "src": "23175:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11540,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23175:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23174:14:29"
+ },
+ "returnParameters": {
+ "id": 11545,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11544,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "23219:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11564,
+ "src": "23212:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ },
+ "typeName": {
+ "id": 11543,
+ "name": "int168",
+ "nodeType": "ElementaryTypeName",
+ "src": "23212:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int168",
+ "typeString": "int168"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23211:19:29"
+ },
+ "scope": 12125,
+ "src": "23157:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11589,
+ "nodeType": "Block",
+ "src": "23778:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11572,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11570,
+ "src": "23788:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11575,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11567,
+ "src": "23808:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "23801:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int160_$",
+ "typeString": "type(int160)"
+ },
+ "typeName": {
+ "id": 11573,
+ "name": "int160",
+ "nodeType": "ElementaryTypeName",
+ "src": "23801:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23801:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ }
+ },
+ "src": "23788:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ }
+ },
+ "id": 11578,
+ "nodeType": "ExpressionStatement",
+ "src": "23788:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11581,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11579,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11570,
+ "src": "23828:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11580,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11567,
+ "src": "23842:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "23828:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11588,
+ "nodeType": "IfStatement",
+ "src": "23824:98:29",
+ "trueBody": {
+ "id": 11587,
+ "nodeType": "Block",
+ "src": "23849:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313630",
+ "id": 11583,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23900:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_160_by_1",
+ "typeString": "int_const 160"
+ },
+ "value": "160"
+ },
+ {
+ "id": 11584,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11567,
+ "src": "23905:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_160_by_1",
+ "typeString": "int_const 160"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11582,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "23870:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23870:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11586,
+ "nodeType": "RevertStatement",
+ "src": "23863:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11565,
+ "nodeType": "StructuredDocumentation",
+ "src": "23387:312:29",
+ "text": " @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"
+ },
+ "id": 11590,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt160",
+ "nameLocation": "23713:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11568,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11567,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "23729:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11590,
+ "src": "23722:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11566,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23722:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23721:14:29"
+ },
+ "returnParameters": {
+ "id": 11571,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11570,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "23766:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11590,
+ "src": "23759:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ },
+ "typeName": {
+ "id": 11569,
+ "name": "int160",
+ "nodeType": "ElementaryTypeName",
+ "src": "23759:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int160",
+ "typeString": "int160"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23758:19:29"
+ },
+ "scope": 12125,
+ "src": "23704:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11615,
+ "nodeType": "Block",
+ "src": "24325:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11603,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11598,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11596,
+ "src": "24335:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11601,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11593,
+ "src": "24355:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11600,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "24348:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int152_$",
+ "typeString": "type(int152)"
+ },
+ "typeName": {
+ "id": 11599,
+ "name": "int152",
+ "nodeType": "ElementaryTypeName",
+ "src": "24348:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "24348:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ }
+ },
+ "src": "24335:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ }
+ },
+ "id": 11604,
+ "nodeType": "ExpressionStatement",
+ "src": "24335:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11607,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11605,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11596,
+ "src": "24375:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11606,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11593,
+ "src": "24389:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "24375:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11614,
+ "nodeType": "IfStatement",
+ "src": "24371:98:29",
+ "trueBody": {
+ "id": 11613,
+ "nodeType": "Block",
+ "src": "24396:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313532",
+ "id": 11609,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "24447:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_152_by_1",
+ "typeString": "int_const 152"
+ },
+ "value": "152"
+ },
+ {
+ "id": 11610,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11593,
+ "src": "24452:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_152_by_1",
+ "typeString": "int_const 152"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11608,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "24417:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11611,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "24417:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11612,
+ "nodeType": "RevertStatement",
+ "src": "24410:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11591,
+ "nodeType": "StructuredDocumentation",
+ "src": "23934:312:29",
+ "text": " @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"
+ },
+ "id": 11616,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt152",
+ "nameLocation": "24260:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11594,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11593,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "24276:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11616,
+ "src": "24269:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11592,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24269:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24268:14:29"
+ },
+ "returnParameters": {
+ "id": 11597,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11596,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "24313:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11616,
+ "src": "24306:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ },
+ "typeName": {
+ "id": 11595,
+ "name": "int152",
+ "nodeType": "ElementaryTypeName",
+ "src": "24306:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int152",
+ "typeString": "int152"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24305:19:29"
+ },
+ "scope": 12125,
+ "src": "24251:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11641,
+ "nodeType": "Block",
+ "src": "24872:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11629,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11624,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11622,
+ "src": "24882:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11627,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11619,
+ "src": "24902:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "24895:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int144_$",
+ "typeString": "type(int144)"
+ },
+ "typeName": {
+ "id": 11625,
+ "name": "int144",
+ "nodeType": "ElementaryTypeName",
+ "src": "24895:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "24895:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ }
+ },
+ "src": "24882:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ }
+ },
+ "id": 11630,
+ "nodeType": "ExpressionStatement",
+ "src": "24882:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11631,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11622,
+ "src": "24922:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11632,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11619,
+ "src": "24936:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "24922:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11640,
+ "nodeType": "IfStatement",
+ "src": "24918:98:29",
+ "trueBody": {
+ "id": 11639,
+ "nodeType": "Block",
+ "src": "24943:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313434",
+ "id": 11635,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "24994:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_144_by_1",
+ "typeString": "int_const 144"
+ },
+ "value": "144"
+ },
+ {
+ "id": 11636,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11619,
+ "src": "24999:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_144_by_1",
+ "typeString": "int_const 144"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11634,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "24964:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "24964:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11638,
+ "nodeType": "RevertStatement",
+ "src": "24957:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11617,
+ "nodeType": "StructuredDocumentation",
+ "src": "24481:312:29",
+ "text": " @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"
+ },
+ "id": 11642,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt144",
+ "nameLocation": "24807:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11620,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11619,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "24823:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11642,
+ "src": "24816:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11618,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24816:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24815:14:29"
+ },
+ "returnParameters": {
+ "id": 11623,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11622,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "24860:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11642,
+ "src": "24853:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ },
+ "typeName": {
+ "id": 11621,
+ "name": "int144",
+ "nodeType": "ElementaryTypeName",
+ "src": "24853:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int144",
+ "typeString": "int144"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24852:19:29"
+ },
+ "scope": 12125,
+ "src": "24798:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11667,
+ "nodeType": "Block",
+ "src": "25419:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11650,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11648,
+ "src": "25429:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11653,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11645,
+ "src": "25449:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11652,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "25442:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int136_$",
+ "typeString": "type(int136)"
+ },
+ "typeName": {
+ "id": 11651,
+ "name": "int136",
+ "nodeType": "ElementaryTypeName",
+ "src": "25442:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11654,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25442:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ }
+ },
+ "src": "25429:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ }
+ },
+ "id": 11656,
+ "nodeType": "ExpressionStatement",
+ "src": "25429:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11659,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11657,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11648,
+ "src": "25469:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11658,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11645,
+ "src": "25483:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "25469:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11666,
+ "nodeType": "IfStatement",
+ "src": "25465:98:29",
+ "trueBody": {
+ "id": 11665,
+ "nodeType": "Block",
+ "src": "25490:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313336",
+ "id": 11661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "25541:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_136_by_1",
+ "typeString": "int_const 136"
+ },
+ "value": "136"
+ },
+ {
+ "id": 11662,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11645,
+ "src": "25546:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_136_by_1",
+ "typeString": "int_const 136"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11660,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "25511:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11663,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25511:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11664,
+ "nodeType": "RevertStatement",
+ "src": "25504:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11643,
+ "nodeType": "StructuredDocumentation",
+ "src": "25028:312:29",
+ "text": " @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"
+ },
+ "id": 11668,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt136",
+ "nameLocation": "25354:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11646,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11645,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "25370:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11668,
+ "src": "25363:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11644,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25363:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25362:14:29"
+ },
+ "returnParameters": {
+ "id": 11649,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11648,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "25407:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11668,
+ "src": "25400:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ },
+ "typeName": {
+ "id": 11647,
+ "name": "int136",
+ "nodeType": "ElementaryTypeName",
+ "src": "25400:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int136",
+ "typeString": "int136"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25399:19:29"
+ },
+ "scope": 12125,
+ "src": "25345:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11693,
+ "nodeType": "Block",
+ "src": "25966:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11681,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11676,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11674,
+ "src": "25976:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11679,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11671,
+ "src": "25996:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "25989:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int128_$",
+ "typeString": "type(int128)"
+ },
+ "typeName": {
+ "id": 11677,
+ "name": "int128",
+ "nodeType": "ElementaryTypeName",
+ "src": "25989:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11680,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25989:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ }
+ },
+ "src": "25976:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ }
+ },
+ "id": 11682,
+ "nodeType": "ExpressionStatement",
+ "src": "25976:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11685,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11683,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11674,
+ "src": "26016:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11684,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11671,
+ "src": "26030:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "26016:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11692,
+ "nodeType": "IfStatement",
+ "src": "26012:98:29",
+ "trueBody": {
+ "id": 11691,
+ "nodeType": "Block",
+ "src": "26037:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313238",
+ "id": 11687,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26088:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ {
+ "id": 11688,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11671,
+ "src": "26093:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11686,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "26058:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26058:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11690,
+ "nodeType": "RevertStatement",
+ "src": "26051:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11669,
+ "nodeType": "StructuredDocumentation",
+ "src": "25575:312:29",
+ "text": " @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"
+ },
+ "id": 11694,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt128",
+ "nameLocation": "25901:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11672,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11671,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "25917:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11694,
+ "src": "25910:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11670,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25910:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25909:14:29"
+ },
+ "returnParameters": {
+ "id": 11675,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11674,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "25954:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11694,
+ "src": "25947:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ },
+ "typeName": {
+ "id": 11673,
+ "name": "int128",
+ "nodeType": "ElementaryTypeName",
+ "src": "25947:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int128",
+ "typeString": "int128"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25946:19:29"
+ },
+ "scope": 12125,
+ "src": "25892:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11719,
+ "nodeType": "Block",
+ "src": "26513:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11702,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11700,
+ "src": "26523:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11705,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11697,
+ "src": "26543:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11704,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "26536:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int120_$",
+ "typeString": "type(int120)"
+ },
+ "typeName": {
+ "id": 11703,
+ "name": "int120",
+ "nodeType": "ElementaryTypeName",
+ "src": "26536:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11706,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26536:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ }
+ },
+ "src": "26523:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ }
+ },
+ "id": 11708,
+ "nodeType": "ExpressionStatement",
+ "src": "26523:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11709,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11700,
+ "src": "26563:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11710,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11697,
+ "src": "26577:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "26563:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11718,
+ "nodeType": "IfStatement",
+ "src": "26559:98:29",
+ "trueBody": {
+ "id": 11717,
+ "nodeType": "Block",
+ "src": "26584:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313230",
+ "id": 11713,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "26635:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_120_by_1",
+ "typeString": "int_const 120"
+ },
+ "value": "120"
+ },
+ {
+ "id": 11714,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11697,
+ "src": "26640:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_120_by_1",
+ "typeString": "int_const 120"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11712,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "26605:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11715,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "26605:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11716,
+ "nodeType": "RevertStatement",
+ "src": "26598:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11695,
+ "nodeType": "StructuredDocumentation",
+ "src": "26122:312:29",
+ "text": " @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"
+ },
+ "id": 11720,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt120",
+ "nameLocation": "26448:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11698,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11697,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "26464:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11720,
+ "src": "26457:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11696,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26457:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26456:14:29"
+ },
+ "returnParameters": {
+ "id": 11701,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11700,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "26501:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11720,
+ "src": "26494:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ },
+ "typeName": {
+ "id": 11699,
+ "name": "int120",
+ "nodeType": "ElementaryTypeName",
+ "src": "26494:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int120",
+ "typeString": "int120"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26493:19:29"
+ },
+ "scope": 12125,
+ "src": "26439:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11745,
+ "nodeType": "Block",
+ "src": "27060:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11733,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11728,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11726,
+ "src": "27070:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11731,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11723,
+ "src": "27090:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11730,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "27083:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int112_$",
+ "typeString": "type(int112)"
+ },
+ "typeName": {
+ "id": 11729,
+ "name": "int112",
+ "nodeType": "ElementaryTypeName",
+ "src": "27083:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "27083:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ }
+ },
+ "src": "27070:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ }
+ },
+ "id": 11734,
+ "nodeType": "ExpressionStatement",
+ "src": "27070:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11737,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11735,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11726,
+ "src": "27110:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11736,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11723,
+ "src": "27124:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "27110:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11744,
+ "nodeType": "IfStatement",
+ "src": "27106:98:29",
+ "trueBody": {
+ "id": 11743,
+ "nodeType": "Block",
+ "src": "27131:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313132",
+ "id": 11739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "27182:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_112_by_1",
+ "typeString": "int_const 112"
+ },
+ "value": "112"
+ },
+ {
+ "id": 11740,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11723,
+ "src": "27187:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_112_by_1",
+ "typeString": "int_const 112"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11738,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "27152:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "27152:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11742,
+ "nodeType": "RevertStatement",
+ "src": "27145:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11721,
+ "nodeType": "StructuredDocumentation",
+ "src": "26669:312:29",
+ "text": " @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"
+ },
+ "id": 11746,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt112",
+ "nameLocation": "26995:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11724,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11723,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "27011:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11746,
+ "src": "27004:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11722,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27004:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27003:14:29"
+ },
+ "returnParameters": {
+ "id": 11727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11726,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "27048:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11746,
+ "src": "27041:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ },
+ "typeName": {
+ "id": 11725,
+ "name": "int112",
+ "nodeType": "ElementaryTypeName",
+ "src": "27041:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int112",
+ "typeString": "int112"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27040:19:29"
+ },
+ "scope": 12125,
+ "src": "26986:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11771,
+ "nodeType": "Block",
+ "src": "27607:150:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11759,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11754,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11752,
+ "src": "27617:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11757,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11749,
+ "src": "27637:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11756,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "27630:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int104_$",
+ "typeString": "type(int104)"
+ },
+ "typeName": {
+ "id": 11755,
+ "name": "int104",
+ "nodeType": "ElementaryTypeName",
+ "src": "27630:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "27630:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ }
+ },
+ "src": "27617:26:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ }
+ },
+ "id": 11760,
+ "nodeType": "ExpressionStatement",
+ "src": "27617:26:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11761,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11752,
+ "src": "27657:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11762,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11749,
+ "src": "27671:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "27657:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11770,
+ "nodeType": "IfStatement",
+ "src": "27653:98:29",
+ "trueBody": {
+ "id": 11769,
+ "nodeType": "Block",
+ "src": "27678:73:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "313034",
+ "id": 11765,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "27729:3:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_104_by_1",
+ "typeString": "int_const 104"
+ },
+ "value": "104"
+ },
+ {
+ "id": 11766,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11749,
+ "src": "27734:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_104_by_1",
+ "typeString": "int_const 104"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11764,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "27699:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "27699:41:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11768,
+ "nodeType": "RevertStatement",
+ "src": "27692:48:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11747,
+ "nodeType": "StructuredDocumentation",
+ "src": "27216:312:29",
+ "text": " @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"
+ },
+ "id": 11772,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt104",
+ "nameLocation": "27542:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11750,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11749,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "27558:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11772,
+ "src": "27551:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11748,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27551:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27550:14:29"
+ },
+ "returnParameters": {
+ "id": 11753,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11752,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "27595:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11772,
+ "src": "27588:17:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ },
+ "typeName": {
+ "id": 11751,
+ "name": "int104",
+ "nodeType": "ElementaryTypeName",
+ "src": "27588:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int104",
+ "typeString": "int104"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27587:19:29"
+ },
+ "scope": 12125,
+ "src": "27533:224:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11797,
+ "nodeType": "Block",
+ "src": "28147:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11785,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11780,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11778,
+ "src": "28157:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11783,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11775,
+ "src": "28176:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11782,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "28170:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int96_$",
+ "typeString": "type(int96)"
+ },
+ "typeName": {
+ "id": 11781,
+ "name": "int96",
+ "nodeType": "ElementaryTypeName",
+ "src": "28170:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28170:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ }
+ },
+ "src": "28157:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ }
+ },
+ "id": 11786,
+ "nodeType": "ExpressionStatement",
+ "src": "28157:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11787,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11778,
+ "src": "28196:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11788,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11775,
+ "src": "28210:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "28196:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11796,
+ "nodeType": "IfStatement",
+ "src": "28192:97:29",
+ "trueBody": {
+ "id": 11795,
+ "nodeType": "Block",
+ "src": "28217:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3936",
+ "id": 11791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "28268:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ "value": "96"
+ },
+ {
+ "id": 11792,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11775,
+ "src": "28272:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_96_by_1",
+ "typeString": "int_const 96"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11790,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "28238:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28238:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11794,
+ "nodeType": "RevertStatement",
+ "src": "28231:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11773,
+ "nodeType": "StructuredDocumentation",
+ "src": "27763:307:29",
+ "text": " @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"
+ },
+ "id": 11798,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt96",
+ "nameLocation": "28084:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11776,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11775,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "28099:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11798,
+ "src": "28092:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11774,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28092:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28091:14:29"
+ },
+ "returnParameters": {
+ "id": 11779,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11778,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "28135:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11798,
+ "src": "28129:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ },
+ "typeName": {
+ "id": 11777,
+ "name": "int96",
+ "nodeType": "ElementaryTypeName",
+ "src": "28129:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int96",
+ "typeString": "int96"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28128:18:29"
+ },
+ "scope": 12125,
+ "src": "28075:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11823,
+ "nodeType": "Block",
+ "src": "28685:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11806,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11804,
+ "src": "28695:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11809,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11801,
+ "src": "28714:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "28708:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int88_$",
+ "typeString": "type(int88)"
+ },
+ "typeName": {
+ "id": 11807,
+ "name": "int88",
+ "nodeType": "ElementaryTypeName",
+ "src": "28708:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11810,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28708:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ }
+ },
+ "src": "28695:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ }
+ },
+ "id": 11812,
+ "nodeType": "ExpressionStatement",
+ "src": "28695:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11815,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11813,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11804,
+ "src": "28734:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11814,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11801,
+ "src": "28748:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "28734:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11822,
+ "nodeType": "IfStatement",
+ "src": "28730:97:29",
+ "trueBody": {
+ "id": 11821,
+ "nodeType": "Block",
+ "src": "28755:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3838",
+ "id": 11817,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "28806:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_88_by_1",
+ "typeString": "int_const 88"
+ },
+ "value": "88"
+ },
+ {
+ "id": 11818,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11801,
+ "src": "28810:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_88_by_1",
+ "typeString": "int_const 88"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11816,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "28776:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11819,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "28776:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11820,
+ "nodeType": "RevertStatement",
+ "src": "28769:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11799,
+ "nodeType": "StructuredDocumentation",
+ "src": "28301:307:29",
+ "text": " @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"
+ },
+ "id": 11824,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt88",
+ "nameLocation": "28622:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11802,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11801,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "28637:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11824,
+ "src": "28630:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11800,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28630:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28629:14:29"
+ },
+ "returnParameters": {
+ "id": 11805,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11804,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "28673:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11824,
+ "src": "28667:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ },
+ "typeName": {
+ "id": 11803,
+ "name": "int88",
+ "nodeType": "ElementaryTypeName",
+ "src": "28667:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int88",
+ "typeString": "int88"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28666:18:29"
+ },
+ "scope": 12125,
+ "src": "28613:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11849,
+ "nodeType": "Block",
+ "src": "29223:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11832,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11830,
+ "src": "29233:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11835,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11827,
+ "src": "29252:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "29246:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int80_$",
+ "typeString": "type(int80)"
+ },
+ "typeName": {
+ "id": 11833,
+ "name": "int80",
+ "nodeType": "ElementaryTypeName",
+ "src": "29246:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "29246:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ }
+ },
+ "src": "29233:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ }
+ },
+ "id": 11838,
+ "nodeType": "ExpressionStatement",
+ "src": "29233:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11839,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11830,
+ "src": "29272:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11840,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11827,
+ "src": "29286:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "29272:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11848,
+ "nodeType": "IfStatement",
+ "src": "29268:97:29",
+ "trueBody": {
+ "id": 11847,
+ "nodeType": "Block",
+ "src": "29293:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3830",
+ "id": 11843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29344:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ "value": "80"
+ },
+ {
+ "id": 11844,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11827,
+ "src": "29348:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11842,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "29314:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "29314:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11846,
+ "nodeType": "RevertStatement",
+ "src": "29307:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11825,
+ "nodeType": "StructuredDocumentation",
+ "src": "28839:307:29",
+ "text": " @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"
+ },
+ "id": 11850,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt80",
+ "nameLocation": "29160:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11828,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11827,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "29175:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11850,
+ "src": "29168:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11826,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "29168:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29167:14:29"
+ },
+ "returnParameters": {
+ "id": 11831,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11830,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "29211:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11850,
+ "src": "29205:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ },
+ "typeName": {
+ "id": 11829,
+ "name": "int80",
+ "nodeType": "ElementaryTypeName",
+ "src": "29205:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int80",
+ "typeString": "int80"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29204:18:29"
+ },
+ "scope": 12125,
+ "src": "29151:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11875,
+ "nodeType": "Block",
+ "src": "29761:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11863,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11858,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11856,
+ "src": "29771:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11861,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11853,
+ "src": "29790:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "29784:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int72_$",
+ "typeString": "type(int72)"
+ },
+ "typeName": {
+ "id": 11859,
+ "name": "int72",
+ "nodeType": "ElementaryTypeName",
+ "src": "29784:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "29784:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ }
+ },
+ "src": "29771:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ }
+ },
+ "id": 11864,
+ "nodeType": "ExpressionStatement",
+ "src": "29771:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11865,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11856,
+ "src": "29810:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11866,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11853,
+ "src": "29824:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "29810:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11874,
+ "nodeType": "IfStatement",
+ "src": "29806:97:29",
+ "trueBody": {
+ "id": 11873,
+ "nodeType": "Block",
+ "src": "29831:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3732",
+ "id": 11869,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "29882:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_72_by_1",
+ "typeString": "int_const 72"
+ },
+ "value": "72"
+ },
+ {
+ "id": 11870,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11853,
+ "src": "29886:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_72_by_1",
+ "typeString": "int_const 72"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11868,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "29852:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "29852:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11872,
+ "nodeType": "RevertStatement",
+ "src": "29845:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11851,
+ "nodeType": "StructuredDocumentation",
+ "src": "29377:307:29",
+ "text": " @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"
+ },
+ "id": 11876,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt72",
+ "nameLocation": "29698:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11854,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11853,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "29713:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11876,
+ "src": "29706:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11852,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "29706:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29705:14:29"
+ },
+ "returnParameters": {
+ "id": 11857,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11856,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "29749:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11876,
+ "src": "29743:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ },
+ "typeName": {
+ "id": 11855,
+ "name": "int72",
+ "nodeType": "ElementaryTypeName",
+ "src": "29743:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int72",
+ "typeString": "int72"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "29742:18:29"
+ },
+ "scope": 12125,
+ "src": "29689:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11901,
+ "nodeType": "Block",
+ "src": "30299:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11884,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11882,
+ "src": "30309:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11887,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11879,
+ "src": "30328:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11886,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "30322:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int64_$",
+ "typeString": "type(int64)"
+ },
+ "typeName": {
+ "id": 11885,
+ "name": "int64",
+ "nodeType": "ElementaryTypeName",
+ "src": "30322:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30322:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ }
+ },
+ "src": "30309:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ }
+ },
+ "id": 11890,
+ "nodeType": "ExpressionStatement",
+ "src": "30309:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11891,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11882,
+ "src": "30348:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11892,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11879,
+ "src": "30362:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "30348:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11900,
+ "nodeType": "IfStatement",
+ "src": "30344:97:29",
+ "trueBody": {
+ "id": 11899,
+ "nodeType": "Block",
+ "src": "30369:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3634",
+ "id": 11895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30420:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ "value": "64"
+ },
+ {
+ "id": 11896,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11879,
+ "src": "30424:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_64_by_1",
+ "typeString": "int_const 64"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11894,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "30390:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30390:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11898,
+ "nodeType": "RevertStatement",
+ "src": "30383:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11877,
+ "nodeType": "StructuredDocumentation",
+ "src": "29915:307:29",
+ "text": " @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"
+ },
+ "id": 11902,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt64",
+ "nameLocation": "30236:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11880,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11879,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "30251:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11902,
+ "src": "30244:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11878,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30244:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30243:14:29"
+ },
+ "returnParameters": {
+ "id": 11883,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11882,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "30287:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11902,
+ "src": "30281:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ },
+ "typeName": {
+ "id": 11881,
+ "name": "int64",
+ "nodeType": "ElementaryTypeName",
+ "src": "30281:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int64",
+ "typeString": "int64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30280:18:29"
+ },
+ "scope": 12125,
+ "src": "30227:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11927,
+ "nodeType": "Block",
+ "src": "30837:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11910,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11908,
+ "src": "30847:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11913,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11905,
+ "src": "30866:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "30860:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int56_$",
+ "typeString": "type(int56)"
+ },
+ "typeName": {
+ "id": 11911,
+ "name": "int56",
+ "nodeType": "ElementaryTypeName",
+ "src": "30860:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30860:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ }
+ },
+ "src": "30847:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ }
+ },
+ "id": 11916,
+ "nodeType": "ExpressionStatement",
+ "src": "30847:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11917,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11908,
+ "src": "30886:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11918,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11905,
+ "src": "30900:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "30886:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11926,
+ "nodeType": "IfStatement",
+ "src": "30882:97:29",
+ "trueBody": {
+ "id": 11925,
+ "nodeType": "Block",
+ "src": "30907:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3536",
+ "id": 11921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "30958:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_56_by_1",
+ "typeString": "int_const 56"
+ },
+ "value": "56"
+ },
+ {
+ "id": 11922,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11905,
+ "src": "30962:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_56_by_1",
+ "typeString": "int_const 56"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11920,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "30928:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "30928:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11924,
+ "nodeType": "RevertStatement",
+ "src": "30921:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11903,
+ "nodeType": "StructuredDocumentation",
+ "src": "30453:307:29",
+ "text": " @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"
+ },
+ "id": 11928,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt56",
+ "nameLocation": "30774:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11906,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11905,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "30789:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11928,
+ "src": "30782:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11904,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "30782:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30781:14:29"
+ },
+ "returnParameters": {
+ "id": 11909,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11908,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "30825:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11928,
+ "src": "30819:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ },
+ "typeName": {
+ "id": 11907,
+ "name": "int56",
+ "nodeType": "ElementaryTypeName",
+ "src": "30819:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int56",
+ "typeString": "int56"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "30818:18:29"
+ },
+ "scope": 12125,
+ "src": "30765:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11953,
+ "nodeType": "Block",
+ "src": "31375:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11941,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11936,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11934,
+ "src": "31385:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11939,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11931,
+ "src": "31404:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "31398:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int48_$",
+ "typeString": "type(int48)"
+ },
+ "typeName": {
+ "id": 11937,
+ "name": "int48",
+ "nodeType": "ElementaryTypeName",
+ "src": "31398:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11940,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31398:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ }
+ },
+ "src": "31385:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ }
+ },
+ "id": 11942,
+ "nodeType": "ExpressionStatement",
+ "src": "31385:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11945,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11943,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11934,
+ "src": "31424:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11944,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11931,
+ "src": "31438:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "31424:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11952,
+ "nodeType": "IfStatement",
+ "src": "31420:97:29",
+ "trueBody": {
+ "id": 11951,
+ "nodeType": "Block",
+ "src": "31445:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3438",
+ "id": 11947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "31496:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_48_by_1",
+ "typeString": "int_const 48"
+ },
+ "value": "48"
+ },
+ {
+ "id": 11948,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11931,
+ "src": "31500:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_48_by_1",
+ "typeString": "int_const 48"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11946,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "31466:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31466:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11950,
+ "nodeType": "RevertStatement",
+ "src": "31459:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11929,
+ "nodeType": "StructuredDocumentation",
+ "src": "30991:307:29",
+ "text": " @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"
+ },
+ "id": 11954,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt48",
+ "nameLocation": "31312:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11932,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11931,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "31327:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11954,
+ "src": "31320:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11930,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "31320:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31319:14:29"
+ },
+ "returnParameters": {
+ "id": 11935,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11934,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "31363:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11954,
+ "src": "31357:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ },
+ "typeName": {
+ "id": 11933,
+ "name": "int48",
+ "nodeType": "ElementaryTypeName",
+ "src": "31357:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int48",
+ "typeString": "int48"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31356:18:29"
+ },
+ "scope": 12125,
+ "src": "31303:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 11979,
+ "nodeType": "Block",
+ "src": "31913:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11962,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11960,
+ "src": "31923:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11965,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11957,
+ "src": "31942:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "31936:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int40_$",
+ "typeString": "type(int40)"
+ },
+ "typeName": {
+ "id": 11963,
+ "name": "int40",
+ "nodeType": "ElementaryTypeName",
+ "src": "31936:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "31936:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ }
+ },
+ "src": "31923:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ }
+ },
+ "id": 11968,
+ "nodeType": "ExpressionStatement",
+ "src": "31923:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11969,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11960,
+ "src": "31962:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11970,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11957,
+ "src": "31976:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "31962:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 11978,
+ "nodeType": "IfStatement",
+ "src": "31958:97:29",
+ "trueBody": {
+ "id": 11977,
+ "nodeType": "Block",
+ "src": "31983:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3430",
+ "id": 11973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "32034:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ "value": "40"
+ },
+ {
+ "id": 11974,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11957,
+ "src": "32038:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_40_by_1",
+ "typeString": "int_const 40"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11972,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "32004:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 11975,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "32004:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 11976,
+ "nodeType": "RevertStatement",
+ "src": "31997:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11955,
+ "nodeType": "StructuredDocumentation",
+ "src": "31529:307:29",
+ "text": " @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"
+ },
+ "id": 11980,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt40",
+ "nameLocation": "31850:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11958,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11957,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "31865:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11980,
+ "src": "31858:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11956,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "31858:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31857:14:29"
+ },
+ "returnParameters": {
+ "id": 11961,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11960,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "31901:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 11980,
+ "src": "31895:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ },
+ "typeName": {
+ "id": 11959,
+ "name": "int40",
+ "nodeType": "ElementaryTypeName",
+ "src": "31895:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int40",
+ "typeString": "int40"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "31894:18:29"
+ },
+ "scope": 12125,
+ "src": "31841:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12005,
+ "nodeType": "Block",
+ "src": "32451:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 11993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 11988,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11986,
+ "src": "32461:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 11991,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11983,
+ "src": "32480:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "32474:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int32_$",
+ "typeString": "type(int32)"
+ },
+ "typeName": {
+ "id": 11989,
+ "name": "int32",
+ "nodeType": "ElementaryTypeName",
+ "src": "32474:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 11992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "32474:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ }
+ },
+ "src": "32461:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ }
+ },
+ "id": 11994,
+ "nodeType": "ExpressionStatement",
+ "src": "32461:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 11997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 11995,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11986,
+ "src": "32500:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 11996,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11983,
+ "src": "32514:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "32500:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12004,
+ "nodeType": "IfStatement",
+ "src": "32496:97:29",
+ "trueBody": {
+ "id": 12003,
+ "nodeType": "Block",
+ "src": "32521:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3332",
+ "id": 11999,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "32572:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ {
+ "id": 12000,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11983,
+ "src": "32576:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 11998,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "32542:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 12001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "32542:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 12002,
+ "nodeType": "RevertStatement",
+ "src": "32535:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 11981,
+ "nodeType": "StructuredDocumentation",
+ "src": "32067:307:29",
+ "text": " @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"
+ },
+ "id": 12006,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt32",
+ "nameLocation": "32388:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 11984,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11983,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "32403:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12006,
+ "src": "32396:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 11982,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "32396:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32395:14:29"
+ },
+ "returnParameters": {
+ "id": 11987,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 11986,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "32439:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12006,
+ "src": "32433:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ },
+ "typeName": {
+ "id": 11985,
+ "name": "int32",
+ "nodeType": "ElementaryTypeName",
+ "src": "32433:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int32",
+ "typeString": "int32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32432:18:29"
+ },
+ "scope": 12125,
+ "src": "32379:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12031,
+ "nodeType": "Block",
+ "src": "32989:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 12019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 12014,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12012,
+ "src": "32999:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 12017,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12009,
+ "src": "33018:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "33012:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int24_$",
+ "typeString": "type(int24)"
+ },
+ "typeName": {
+ "id": 12015,
+ "name": "int24",
+ "nodeType": "ElementaryTypeName",
+ "src": "33012:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "33012:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ }
+ },
+ "src": "32999:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ }
+ },
+ "id": 12020,
+ "nodeType": "ExpressionStatement",
+ "src": "32999:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12021,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12012,
+ "src": "33038:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 12022,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12009,
+ "src": "33052:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "33038:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12030,
+ "nodeType": "IfStatement",
+ "src": "33034:97:29",
+ "trueBody": {
+ "id": 12029,
+ "nodeType": "Block",
+ "src": "33059:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3234",
+ "id": 12025,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "33110:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ "value": "24"
+ },
+ {
+ "id": 12026,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12009,
+ "src": "33114:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12024,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "33080:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 12027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "33080:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 12028,
+ "nodeType": "RevertStatement",
+ "src": "33073:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12007,
+ "nodeType": "StructuredDocumentation",
+ "src": "32605:307:29",
+ "text": " @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"
+ },
+ "id": 12032,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt24",
+ "nameLocation": "32926:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12010,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12009,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "32941:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12032,
+ "src": "32934:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12008,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "32934:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32933:14:29"
+ },
+ "returnParameters": {
+ "id": 12013,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12012,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "32977:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12032,
+ "src": "32971:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ },
+ "typeName": {
+ "id": 12011,
+ "name": "int24",
+ "nodeType": "ElementaryTypeName",
+ "src": "32971:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int24",
+ "typeString": "int24"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "32970:18:29"
+ },
+ "scope": 12125,
+ "src": "32917:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12057,
+ "nodeType": "Block",
+ "src": "33527:148:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 12045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 12040,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12038,
+ "src": "33537:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 12043,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12035,
+ "src": "33556:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "33550:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int16_$",
+ "typeString": "type(int16)"
+ },
+ "typeName": {
+ "id": 12041,
+ "name": "int16",
+ "nodeType": "ElementaryTypeName",
+ "src": "33550:5:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "33550:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "src": "33537:25:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "id": 12046,
+ "nodeType": "ExpressionStatement",
+ "src": "33537:25:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12047,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12038,
+ "src": "33576:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 12048,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12035,
+ "src": "33590:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "33576:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12056,
+ "nodeType": "IfStatement",
+ "src": "33572:97:29",
+ "trueBody": {
+ "id": 12055,
+ "nodeType": "Block",
+ "src": "33597:72:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "3136",
+ "id": 12051,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "33648:2:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ {
+ "id": 12052,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12035,
+ "src": "33652:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12050,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "33618:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 12053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "33618:40:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 12054,
+ "nodeType": "RevertStatement",
+ "src": "33611:47:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12033,
+ "nodeType": "StructuredDocumentation",
+ "src": "33143:307:29",
+ "text": " @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"
+ },
+ "id": 12058,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt16",
+ "nameLocation": "33464:7:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12036,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12035,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "33479:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12058,
+ "src": "33472:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12034,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "33472:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "33471:14:29"
+ },
+ "returnParameters": {
+ "id": 12039,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12038,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "33515:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12058,
+ "src": "33509:16:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ },
+ "typeName": {
+ "id": 12037,
+ "name": "int16",
+ "nodeType": "ElementaryTypeName",
+ "src": "33509:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "33508:18:29"
+ },
+ "scope": 12125,
+ "src": "33455:220:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12083,
+ "nodeType": "Block",
+ "src": "34058:146:29",
+ "statements": [
+ {
+ "expression": {
+ "id": 12071,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 12066,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12064,
+ "src": "34068:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 12069,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12061,
+ "src": "34086:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "34081:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int8_$",
+ "typeString": "type(int8)"
+ },
+ "typeName": {
+ "id": 12067,
+ "name": "int8",
+ "nodeType": "ElementaryTypeName",
+ "src": "34081:4:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34081:11:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "src": "34068:24:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "id": 12072,
+ "nodeType": "ExpressionStatement",
+ "src": "34068:24:29"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12073,
+ "name": "downcasted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12064,
+ "src": "34106:10:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 12074,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12061,
+ "src": "34120:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "34106:19:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12082,
+ "nodeType": "IfStatement",
+ "src": "34102:96:29",
+ "trueBody": {
+ "id": 12081,
+ "nodeType": "Block",
+ "src": "34127:71:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "hexValue": "38",
+ "id": 12077,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "34178:1:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ {
+ "id": 12078,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12061,
+ "src": "34181:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12076,
+ "name": "SafeCastOverflowedIntDowncast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10382,
+ "src": "34148:29:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$",
+ "typeString": "function (uint8,int256) pure returns (error)"
+ }
+ },
+ "id": 12079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34148:39:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 12080,
+ "nodeType": "RevertStatement",
+ "src": "34141:46:29"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12059,
+ "nodeType": "StructuredDocumentation",
+ "src": "33681:302:29",
+ "text": " @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"
+ },
+ "id": 12084,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt8",
+ "nameLocation": "33997:6:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12062,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12061,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "34011:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12084,
+ "src": "34004:12:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12060,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34004:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34003:14:29"
+ },
+ "returnParameters": {
+ "id": 12065,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12064,
+ "mutability": "mutable",
+ "name": "downcasted",
+ "nameLocation": "34046:10:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12084,
+ "src": "34041:15:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ },
+ "typeName": {
+ "id": 12063,
+ "name": "int8",
+ "nodeType": "ElementaryTypeName",
+ "src": "34041:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34040:17:29"
+ },
+ "scope": 12125,
+ "src": "33988:216:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12113,
+ "nodeType": "Block",
+ "src": "34444:250:29",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12092,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12087,
+ "src": "34557:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "arguments": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 12097,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "34578:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 12096,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34578:6:29",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ }
+ ],
+ "id": 12095,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "34573:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 12098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34573:12:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_int256",
+ "typeString": "type(int256)"
+ }
+ },
+ "id": 12099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "34586:3:29",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "34573:16:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "34565:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12093,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34565:7:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34565:25:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "34557:33:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12107,
+ "nodeType": "IfStatement",
+ "src": "34553:105:29",
+ "trueBody": {
+ "id": 12106,
+ "nodeType": "Block",
+ "src": "34592:66:29",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 12103,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12087,
+ "src": "34641:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12102,
+ "name": "SafeCastOverflowedUintToInt",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 10387,
+ "src": "34613:27:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 12104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34613:34:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 12105,
+ "nodeType": "RevertStatement",
+ "src": "34606:41:29"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 12110,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12087,
+ "src": "34681:5:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "34674:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 12108,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34674:6:29",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "34674:13:29",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 12091,
+ "id": 12112,
+ "nodeType": "Return",
+ "src": "34667:20:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12085,
+ "nodeType": "StructuredDocumentation",
+ "src": "34210:165:29",
+ "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."
+ },
+ "id": 12114,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toInt256",
+ "nameLocation": "34389:8:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12088,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12087,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "34406:5:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12114,
+ "src": "34398:13:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12086,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34398:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34397:15:29"
+ },
+ "returnParameters": {
+ "id": 12091,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12090,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12114,
+ "src": "34436:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12089,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34436:6:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34435:8:29"
+ },
+ "scope": 12125,
+ "src": "34380:314:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12123,
+ "nodeType": "Block",
+ "src": "34853:87:29",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "34888:46:29",
+ "nodeType": "YulBlock",
+ "src": "34888:46:29",
+ "statements": [
+ {
+ "nativeSrc": "34902:22:29",
+ "nodeType": "YulAssignment",
+ "src": "34902:22:29",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "b",
+ "nativeSrc": "34921:1:29",
+ "nodeType": "YulIdentifier",
+ "src": "34921:1:29"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "34914:6:29",
+ "nodeType": "YulIdentifier",
+ "src": "34914:6:29"
+ },
+ "nativeSrc": "34914:9:29",
+ "nodeType": "YulFunctionCall",
+ "src": "34914:9:29"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "34907:6:29",
+ "nodeType": "YulIdentifier",
+ "src": "34907:6:29"
+ },
+ "nativeSrc": "34907:17:29",
+ "nodeType": "YulFunctionCall",
+ "src": "34907:17:29"
+ },
+ "variableNames": [
+ {
+ "name": "u",
+ "nativeSrc": "34902:1:29",
+ "nodeType": "YulIdentifier",
+ "src": "34902:1:29"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 12117,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "34921:1:29",
+ "valueSize": 1
+ },
+ {
+ "declaration": 12120,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "34902:1:29",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 12122,
+ "nodeType": "InlineAssembly",
+ "src": "34863:71:29"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12115,
+ "nodeType": "StructuredDocumentation",
+ "src": "34700:90:29",
+ "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."
+ },
+ "id": 12124,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint",
+ "nameLocation": "34804:6:29",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12118,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12117,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "34816:1:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12124,
+ "src": "34811:6:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12116,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "34811:4:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34810:8:29"
+ },
+ "returnParameters": {
+ "id": 12121,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12120,
+ "mutability": "mutable",
+ "name": "u",
+ "nameLocation": "34850:1:29",
+ "nodeType": "VariableDeclaration",
+ "scope": 12124,
+ "src": "34842:9:29",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "34842:7:29",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "34841:11:29"
+ },
+ "scope": 12125,
+ "src": "34795:145:29",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 12126,
+ "src": "769:34173:29",
+ "usedErrors": [
+ 10370,
+ 10375,
+ 10382,
+ 10387
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "192:34751:29"
+ },
+ "id": 29
+ },
+ "@openzeppelin/contracts/utils/math/SignedMath.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol",
+ "exportedSymbols": {
+ "SafeCast": [
+ 12125
+ ],
+ "SignedMath": [
+ 12269
+ ]
+ },
+ "id": 12270,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 12127,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "109:24:30"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol",
+ "file": "./SafeCast.sol",
+ "id": 12129,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 12270,
+ "sourceUnit": 12126,
+ "src": "135:40:30",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 12128,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "143:8:30",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "SignedMath",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 12130,
+ "nodeType": "StructuredDocumentation",
+ "src": "177:80:30",
+ "text": " @dev Standard signed math utilities missing in the Solidity language."
+ },
+ "fullyImplemented": true,
+ "id": 12269,
+ "linearizedBaseContracts": [
+ 12269
+ ],
+ "name": "SignedMath",
+ "nameLocation": "266:10:30",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 12159,
+ "nodeType": "Block",
+ "src": "746:215:30",
+ "statements": [
+ {
+ "id": 12158,
+ "nodeType": "UncheckedBlock",
+ "src": "756:199:30",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12142,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12137,
+ "src": "894:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12143,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12135,
+ "src": "900:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 12144,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12137,
+ "src": "904:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "900:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12146,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "899:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 12151,
+ "name": "condition",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12133,
+ "src": "932:9:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "expression": {
+ "id": 12149,
+ "name": "SafeCast",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12125,
+ "src": "916:8:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$",
+ "typeString": "type(library SafeCast)"
+ }
+ },
+ "id": 12150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "925:6:30",
+ "memberName": "toUint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12124,
+ "src": "916:15:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
+ "typeString": "function (bool) pure returns (uint256)"
+ }
+ },
+ "id": 12152,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "916:26:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "909:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 12147,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "909:6:30",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12153,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "909:34:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "899:44:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12155,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "898:46:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "894:50:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 12141,
+ "id": 12157,
+ "nodeType": "Return",
+ "src": "887:57:30"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12131,
+ "nodeType": "StructuredDocumentation",
+ "src": "283:374:30",
+ "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."
+ },
+ "id": 12160,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ternary",
+ "nameLocation": "671:7:30",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12138,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12133,
+ "mutability": "mutable",
+ "name": "condition",
+ "nameLocation": "684:9:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12160,
+ "src": "679:14:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12132,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "679:4:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12135,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "702:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12160,
+ "src": "695:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12134,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "695:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12137,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "712:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12160,
+ "src": "705:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12136,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "705:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "678:36:30"
+ },
+ "returnParameters": {
+ "id": 12141,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12140,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12160,
+ "src": "738:6:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12139,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "738:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "737:8:30"
+ },
+ "scope": 12269,
+ "src": "662:299:30",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12178,
+ "nodeType": "Block",
+ "src": "1102:44:30",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12171,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12163,
+ "src": "1127:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 12172,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12165,
+ "src": "1131:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1127:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 12174,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12163,
+ "src": "1134:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ {
+ "id": 12175,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12165,
+ "src": "1137:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12170,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12160,
+ "src": "1119:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$",
+ "typeString": "function (bool,int256,int256) pure returns (int256)"
+ }
+ },
+ "id": 12176,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1119:20:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 12169,
+ "id": 12177,
+ "nodeType": "Return",
+ "src": "1112:27:30"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12161,
+ "nodeType": "StructuredDocumentation",
+ "src": "967:66:30",
+ "text": " @dev Returns the largest of two signed numbers."
+ },
+ "id": 12179,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "max",
+ "nameLocation": "1047:3:30",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12166,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12163,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1058:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12179,
+ "src": "1051:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12162,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1051:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12165,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1068:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12179,
+ "src": "1061:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12164,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1061:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1050:20:30"
+ },
+ "returnParameters": {
+ "id": 12169,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12168,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12179,
+ "src": "1094:6:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12167,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1094:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1093:8:30"
+ },
+ "scope": 12269,
+ "src": "1038:108:30",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12197,
+ "nodeType": "Block",
+ "src": "1288:44:30",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12192,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12190,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12182,
+ "src": "1313:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 12191,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12184,
+ "src": "1317:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1313:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 12193,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12182,
+ "src": "1320:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ {
+ "id": 12194,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12184,
+ "src": "1323:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12189,
+ "name": "ternary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12160,
+ "src": "1305:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$",
+ "typeString": "function (bool,int256,int256) pure returns (int256)"
+ }
+ },
+ "id": 12195,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1305:20:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 12188,
+ "id": 12196,
+ "nodeType": "Return",
+ "src": "1298:27:30"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12180,
+ "nodeType": "StructuredDocumentation",
+ "src": "1152:67:30",
+ "text": " @dev Returns the smallest of two signed numbers."
+ },
+ "id": 12198,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "min",
+ "nameLocation": "1233:3:30",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12185,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12182,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1244:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12198,
+ "src": "1237:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12181,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1237:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12184,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1254:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12198,
+ "src": "1247:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12183,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1247:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1236:20:30"
+ },
+ "returnParameters": {
+ "id": 12188,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12187,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12198,
+ "src": "1280:6:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12186,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1280:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1279:8:30"
+ },
+ "scope": 12269,
+ "src": "1224:108:30",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12241,
+ "nodeType": "Block",
+ "src": "1537:162:30",
+ "statements": [
+ {
+ "assignments": [
+ 12209
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12209,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "1606:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12241,
+ "src": "1599:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12208,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1599:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12222,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12210,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12201,
+ "src": "1611:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "id": 12211,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12203,
+ "src": "1615:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1611:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12213,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1610:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12214,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12201,
+ "src": "1622:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 12215,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12203,
+ "src": "1626:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1622:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12217,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1621:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 12218,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1632:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "1621:12:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12220,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1620:14:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1610:24:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1599:35:30"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12239,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12223,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12209,
+ "src": "1651:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 12228,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12209,
+ "src": "1671:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1663:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12226,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1663:7:30",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1663:10:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "323535",
+ "id": 12230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1677:3:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "255"
+ },
+ "src": "1663:17:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12225,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1656:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 12224,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1656:6:30",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1656:25:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12235,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12233,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12201,
+ "src": "1685:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 12234,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12203,
+ "src": "1689:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1685:5:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12236,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1684:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1656:35:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12238,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1655:37:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "1651:41:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "functionReturnParameters": 12207,
+ "id": 12240,
+ "nodeType": "Return",
+ "src": "1644:48:30"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12199,
+ "nodeType": "StructuredDocumentation",
+ "src": "1338:126:30",
+ "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."
+ },
+ "id": 12242,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "average",
+ "nameLocation": "1478:7:30",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12204,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12201,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1493:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12242,
+ "src": "1486:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12200,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1486:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12203,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1503:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12242,
+ "src": "1496:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12202,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1496:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1485:20:30"
+ },
+ "returnParameters": {
+ "id": 12207,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12206,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12242,
+ "src": "1529:6:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12205,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1529:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1528:8:30"
+ },
+ "scope": 12269,
+ "src": "1469:230:30",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12267,
+ "nodeType": "Block",
+ "src": "1843:767:30",
+ "statements": [
+ {
+ "id": 12266,
+ "nodeType": "UncheckedBlock",
+ "src": "1853:751:30",
+ "statements": [
+ {
+ "assignments": [
+ 12251
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12251,
+ "mutability": "mutable",
+ "name": "mask",
+ "nameLocation": "2424:4:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12266,
+ "src": "2417:11:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12250,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2417:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12255,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12252,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12245,
+ "src": "2431:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">>",
+ "rightExpression": {
+ "hexValue": "323535",
+ "id": 12253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2436:3:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_255_by_1",
+ "typeString": "int_const 255"
+ },
+ "value": "255"
+ },
+ "src": "2431:8:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2417:22:30"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12263,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 12260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12258,
+ "name": "n",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12245,
+ "src": "2576:1:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 12259,
+ "name": "mask",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12251,
+ "src": "2580:4:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2576:8:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 12261,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2575:10:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "^",
+ "rightExpression": {
+ "id": 12262,
+ "name": "mask",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12251,
+ "src": "2588:4:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2575:17:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 12257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2567:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12256,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2567:7:30",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12264,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2567:26:30",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12249,
+ "id": 12265,
+ "nodeType": "Return",
+ "src": "2560:33:30"
+ }
+ ]
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12243,
+ "nodeType": "StructuredDocumentation",
+ "src": "1705:78:30",
+ "text": " @dev Returns the absolute unsigned value of a signed value."
+ },
+ "id": 12268,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "abs",
+ "nameLocation": "1797:3:30",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12245,
+ "mutability": "mutable",
+ "name": "n",
+ "nameLocation": "1808:1:30",
+ "nodeType": "VariableDeclaration",
+ "scope": 12268,
+ "src": "1801:8:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12244,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1801:6:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1800:10:30"
+ },
+ "returnParameters": {
+ "id": 12249,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12248,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12268,
+ "src": "1834:7:30",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12247,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1834:7:30",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1833:9:30"
+ },
+ "scope": 12269,
+ "src": "1788:822:30",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 12270,
+ "src": "258:2354:30",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "109:2504:30"
+ },
+ "id": 30
+ },
+ "@openzeppelin/contracts/utils/structs/EnumerableSet.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
+ "exportedSymbols": {
+ "Arrays": [
+ 6529
+ ],
+ "EnumerableSet": [
+ 12966
+ ]
+ },
+ "id": 12967,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 12271,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "205:24:31"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol",
+ "file": "../Arrays.sol",
+ "id": 12273,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 12967,
+ "sourceUnit": 6530,
+ "src": "231:37:31",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 12272,
+ "name": "Arrays",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6529,
+ "src": "239:6:31",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "EnumerableSet",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 12274,
+ "nodeType": "StructuredDocumentation",
+ "src": "270:1154:31",
+ "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 - Set can be cleared (all elements removed) in O(n).\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,
+ "id": 12966,
+ "linearizedBaseContracts": [
+ 12966
+ ],
+ "name": "EnumerableSet",
+ "nameLocation": "1433:13:31",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "EnumerableSet.Set",
+ "id": 12282,
+ "members": [
+ {
+ "constant": false,
+ "id": 12277,
+ "mutability": "mutable",
+ "name": "_values",
+ "nameLocation": "1957:7:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12282,
+ "src": "1947:17:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12275,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1947:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12276,
+ "nodeType": "ArrayTypeName",
+ "src": "1947:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12281,
+ "mutability": "mutable",
+ "name": "_positions",
+ "nameLocation": "2149:10:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12282,
+ "src": "2115:44:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ },
+ "typeName": {
+ "id": 12280,
+ "keyName": "value",
+ "keyNameLocation": "2131:5:31",
+ "keyType": {
+ "id": 12278,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2123:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "2115:33:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 12279,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2140:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Set",
+ "nameLocation": "1900:3:31",
+ "nodeType": "StructDefinition",
+ "scope": 12966,
+ "src": "1893:273:31",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 12323,
+ "nodeType": "Block",
+ "src": "2405:337:31",
+ "statements": [
+ {
+ "condition": {
+ "id": 12297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "2419:22:31",
+ "subExpression": {
+ "arguments": [
+ {
+ "id": 12294,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12286,
+ "src": "2430:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ {
+ "id": 12295,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12288,
+ "src": "2435:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12293,
+ "name": "_contains",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12470,
+ "src": "2420:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
+ }
+ },
+ "id": 12296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2420:21:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 12321,
+ "nodeType": "Block",
+ "src": "2699:37:31",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "66616c7365",
+ "id": 12319,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2720:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "functionReturnParameters": 12292,
+ "id": 12320,
+ "nodeType": "Return",
+ "src": "2713:12:31"
+ }
+ ]
+ },
+ "id": 12322,
+ "nodeType": "IfStatement",
+ "src": "2415:321:31",
+ "trueBody": {
+ "id": 12318,
+ "nodeType": "Block",
+ "src": "2443:250:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 12303,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12288,
+ "src": "2474:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 12298,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12286,
+ "src": "2457:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12301,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2461:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "2457:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12302,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2469:4:31",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "2457:16:31",
+ "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": 12304,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2457:23:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12305,
+ "nodeType": "ExpressionStatement",
+ "src": "2457:23:31"
+ },
+ {
+ "expression": {
+ "id": 12314,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 12306,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12286,
+ "src": "2615:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12309,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2619:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "2615:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12310,
+ "indexExpression": {
+ "id": 12308,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12288,
+ "src": "2630:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2615:21:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "expression": {
+ "id": 12311,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12286,
+ "src": "2639:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12312,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2643:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "2639:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12313,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2651:6:31",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2639:18:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2615:42:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 12315,
+ "nodeType": "ExpressionStatement",
+ "src": "2615:42:31"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 12316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2678:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 12292,
+ "id": 12317,
+ "nodeType": "Return",
+ "src": "2671:11:31"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12283,
+ "nodeType": "StructuredDocumentation",
+ "src": "2172:159:31",
+ "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."
+ },
+ "id": 12324,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_add",
+ "nameLocation": "2345:4:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12289,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12286,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "2362:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12324,
+ "src": "2350:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12285,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12284,
+ "name": "Set",
+ "nameLocations": [
+ "2350:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "2350:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "2350:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12288,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2375:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12324,
+ "src": "2367:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12287,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2367:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2349:32:31"
+ },
+ "returnParameters": {
+ "id": 12292,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12291,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12324,
+ "src": "2399:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12290,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2399:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2398:6:31"
+ },
+ "scope": 12966,
+ "src": "2336:406:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12407,
+ "nodeType": "Block",
+ "src": "2982:1296:31",
+ "statements": [
+ {
+ "assignments": [
+ 12336
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12336,
+ "mutability": "mutable",
+ "name": "position",
+ "nameLocation": "3094:8:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12407,
+ "src": "3086:16:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12335,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3086:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12341,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 12337,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "3105:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12338,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3109:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "3105:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12340,
+ "indexExpression": {
+ "id": 12339,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12330,
+ "src": "3120:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3105:21:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3086:40:31"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12344,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12342,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12336,
+ "src": "3141:8:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 12343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3153:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3141:13:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 12405,
+ "nodeType": "Block",
+ "src": "4235:37:31",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "66616c7365",
+ "id": 12403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4256:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "functionReturnParameters": 12334,
+ "id": 12404,
+ "nodeType": "Return",
+ "src": "4249:12:31"
+ }
+ ]
+ },
+ "id": 12406,
+ "nodeType": "IfStatement",
+ "src": "3137:1135:31",
+ "trueBody": {
+ "id": 12402,
+ "nodeType": "Block",
+ "src": "3156:1073:31",
+ "statements": [
+ {
+ "assignments": [
+ 12346
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12346,
+ "mutability": "mutable",
+ "name": "valueIndex",
+ "nameLocation": "3516:10:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12402,
+ "src": "3508:18:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12345,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3508:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12350,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12347,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12336,
+ "src": "3529:8:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 12348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3540:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "3529:12:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3508:33:31"
+ },
+ {
+ "assignments": [
+ 12352
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12352,
+ "mutability": "mutable",
+ "name": "lastIndex",
+ "nameLocation": "3563:9:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12402,
+ "src": "3555:17:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12351,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3555:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12358,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "expression": {
+ "id": 12353,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "3575:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12354,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3579:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "3575:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3587:6:31",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "3575:18:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 12356,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3596:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "3575:22:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3555:42:31"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12359,
+ "name": "valueIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12346,
+ "src": "3616:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 12360,
+ "name": "lastIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12352,
+ "src": "3630:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3616:23:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12386,
+ "nodeType": "IfStatement",
+ "src": "3612:378:31",
+ "trueBody": {
+ "id": 12385,
+ "nodeType": "Block",
+ "src": "3641:349:31",
+ "statements": [
+ {
+ "assignments": [
+ 12363
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12363,
+ "mutability": "mutable",
+ "name": "lastValue",
+ "nameLocation": "3667:9:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12385,
+ "src": "3659:17:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12362,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3659:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12368,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 12364,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "3679:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12365,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3683:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "3679:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12367,
+ "indexExpression": {
+ "id": 12366,
+ "name": "lastIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12352,
+ "src": "3691:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3679:22:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3659:42:31"
+ },
+ {
+ "expression": {
+ "id": 12375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 12369,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "3800:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12372,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3804:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "3800:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12373,
+ "indexExpression": {
+ "id": 12371,
+ "name": "valueIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12346,
+ "src": "3812:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "3800:23:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 12374,
+ "name": "lastValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12363,
+ "src": "3826:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "3800:35:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12376,
+ "nodeType": "ExpressionStatement",
+ "src": "3800:35:31"
+ },
+ {
+ "expression": {
+ "id": 12383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 12377,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "3939:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12380,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3943:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "3939:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12381,
+ "indexExpression": {
+ "id": 12379,
+ "name": "lastValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12363,
+ "src": "3954:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "3939:25:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 12382,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12336,
+ "src": "3967:8:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3939:36:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 12384,
+ "nodeType": "ExpressionStatement",
+ "src": "3939:36:31"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "id": 12387,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "4068:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12390,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4072:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "4068:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4080:3:31",
+ "memberName": "pop",
+ "nodeType": "MemberAccess",
+ "src": "4068:15:31",
+ "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": 12392,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4068:17:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12393,
+ "nodeType": "ExpressionStatement",
+ "src": "4068:17:31"
+ },
+ {
+ "expression": {
+ "id": 12398,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "delete",
+ "prefix": true,
+ "src": "4164:28:31",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 12394,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12328,
+ "src": "4171:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12395,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4175:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "4171:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12397,
+ "indexExpression": {
+ "id": 12396,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12330,
+ "src": "4186:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "4171:21:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12399,
+ "nodeType": "ExpressionStatement",
+ "src": "4164:28:31"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 12400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4214:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 12334,
+ "id": 12401,
+ "nodeType": "Return",
+ "src": "4207:11:31"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12325,
+ "nodeType": "StructuredDocumentation",
+ "src": "2748:157:31",
+ "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."
+ },
+ "id": 12408,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_remove",
+ "nameLocation": "2919:7:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12331,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12328,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "2939:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12408,
+ "src": "2927:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12327,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12326,
+ "name": "Set",
+ "nameLocations": [
+ "2927:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "2927:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "2927:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12330,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2952:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12408,
+ "src": "2944:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12329,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2944:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2926:32:31"
+ },
+ "returnParameters": {
+ "id": 12334,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12333,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12408,
+ "src": "2976:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12332,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2976:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2975:6:31"
+ },
+ "scope": 12966,
+ "src": "2910:1368:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12450,
+ "nodeType": "Block",
+ "src": "4633:196:31",
+ "statements": [
+ {
+ "assignments": [
+ 12416
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12416,
+ "mutability": "mutable",
+ "name": "len",
+ "nameLocation": "4651:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12450,
+ "src": "4643:11:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12415,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4643:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12420,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 12418,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12412,
+ "src": "4665:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ ],
+ "id": 12417,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12484,
+ "src": "4657:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 12419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4657:12:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4643:26:31"
+ },
+ {
+ "body": {
+ "id": 12440,
+ "nodeType": "Block",
+ "src": "4713:62:31",
+ "statements": [
+ {
+ "expression": {
+ "id": 12438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "delete",
+ "prefix": true,
+ "src": "4727:37:31",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 12431,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12412,
+ "src": "4734:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12432,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4738:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "4734:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12437,
+ "indexExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 12433,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12412,
+ "src": "4749:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12434,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4753:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "4749:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12436,
+ "indexExpression": {
+ "id": 12435,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12422,
+ "src": "4761:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4749:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "4734:30:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12439,
+ "nodeType": "ExpressionStatement",
+ "src": "4727:37:31"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 12425,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12422,
+ "src": "4699:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 12426,
+ "name": "len",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12416,
+ "src": "4703:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4699:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 12441,
+ "initializationExpression": {
+ "assignments": [
+ 12422
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12422,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4692:1:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12441,
+ "src": "4684:9:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12421,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4684:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12424,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 12423,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4696:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4684:13:31"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 12429,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4708:3:31",
+ "subExpression": {
+ "id": 12428,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12422,
+ "src": "4710:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 12430,
+ "nodeType": "ExpressionStatement",
+ "src": "4708:3:31"
+ },
+ "nodeType": "ForStatement",
+ "src": "4679:96:31"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12445,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12412,
+ "src": "4807:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12446,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4811:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "4807:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 12447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4820:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "expression": {
+ "id": 12442,
+ "name": "Arrays",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 6529,
+ "src": "4784:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Arrays_$6529_$",
+ "typeString": "type(library Arrays)"
+ }
+ },
+ "id": 12444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4791:15:31",
+ "memberName": "unsafeSetLength",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 6517,
+ "src": "4784:22:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (bytes32[] storage pointer,uint256)"
+ }
+ },
+ "id": 12448,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4784:38:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12449,
+ "nodeType": "ExpressionStatement",
+ "src": "4784:38:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12409,
+ "nodeType": "StructuredDocumentation",
+ "src": "4284:303:31",
+ "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."
+ },
+ "id": 12451,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_clear",
+ "nameLocation": "4601:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12413,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12412,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "4620:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12451,
+ "src": "4608:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12411,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12410,
+ "name": "Set",
+ "nameLocations": [
+ "4608:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "4608:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "4608:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4607:17:31"
+ },
+ "returnParameters": {
+ "id": 12414,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4633:0:31"
+ },
+ "scope": 12966,
+ "src": "4592:237:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12469,
+ "nodeType": "Block",
+ "src": "4989:50:31",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 12467,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 12462,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12455,
+ "src": "5006:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12463,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5010:10:31",
+ "memberName": "_positions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12281,
+ "src": "5006:14:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
+ "typeString": "mapping(bytes32 => uint256)"
+ }
+ },
+ "id": 12465,
+ "indexExpression": {
+ "id": 12464,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12457,
+ "src": "5021:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5006:21:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 12466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5031:1:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5006:26:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12461,
+ "id": 12468,
+ "nodeType": "Return",
+ "src": "4999:33:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12452,
+ "nodeType": "StructuredDocumentation",
+ "src": "4835:70:31",
+ "text": " @dev Returns true if the value is in the set. O(1)."
+ },
+ "id": 12470,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_contains",
+ "nameLocation": "4919:9:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12458,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12455,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "4941:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12470,
+ "src": "4929:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12454,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12453,
+ "name": "Set",
+ "nameLocations": [
+ "4929:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "4929:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "4929:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12457,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4954:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12470,
+ "src": "4946:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12456,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4946:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4928:32:31"
+ },
+ "returnParameters": {
+ "id": 12461,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12460,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12470,
+ "src": "4983:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12459,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4983:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4982:6:31"
+ },
+ "scope": 12966,
+ "src": "4910:129:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12483,
+ "nodeType": "Block",
+ "src": "5185:42:31",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "expression": {
+ "id": 12479,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12474,
+ "src": "5202:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12480,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5206:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "5202:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12481,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5214:6:31",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5202:18:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12478,
+ "id": 12482,
+ "nodeType": "Return",
+ "src": "5195:25:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12471,
+ "nodeType": "StructuredDocumentation",
+ "src": "5045:70:31",
+ "text": " @dev Returns the number of values on the set. O(1)."
+ },
+ "id": 12484,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_length",
+ "nameLocation": "5129:7:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12475,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12474,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "5149:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12484,
+ "src": "5137:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12473,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12472,
+ "name": "Set",
+ "nameLocations": [
+ "5137:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "5137:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "5137:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5136:17:31"
+ },
+ "returnParameters": {
+ "id": 12478,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12477,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12484,
+ "src": "5176:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12476,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5176:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5175:9:31"
+ },
+ "scope": 12966,
+ "src": "5120:107:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12500,
+ "nodeType": "Block",
+ "src": "5645:42:31",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "id": 12495,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12488,
+ "src": "5662:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12496,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5666:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "5662:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "id": 12498,
+ "indexExpression": {
+ "id": 12497,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12490,
+ "src": "5674:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5662:18:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 12494,
+ "id": 12499,
+ "nodeType": "Return",
+ "src": "5655:25:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12485,
+ "nodeType": "StructuredDocumentation",
+ "src": "5233:331:31",
+ "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}."
+ },
+ "id": 12501,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_at",
+ "nameLocation": "5578:3:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12491,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12488,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "5594:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12501,
+ "src": "5582:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12487,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12486,
+ "name": "Set",
+ "nameLocations": [
+ "5582:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "5582:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "5582:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12490,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "5607:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12501,
+ "src": "5599:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12489,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5599:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5581:32:31"
+ },
+ "returnParameters": {
+ "id": 12494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12493,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12501,
+ "src": "5636:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12492,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5636:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5635:9:31"
+ },
+ "scope": 12966,
+ "src": "5569:118:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 12514,
+ "nodeType": "Block",
+ "src": "6301:35:31",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 12511,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12505,
+ "src": "6318:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set storage pointer"
+ }
+ },
+ "id": 12512,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6322:7:31",
+ "memberName": "_values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12277,
+ "src": "6318:11:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
+ "typeString": "bytes32[] storage ref"
+ }
+ },
+ "functionReturnParameters": 12510,
+ "id": 12513,
+ "nodeType": "Return",
+ "src": "6311:18:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12502,
+ "nodeType": "StructuredDocumentation",
+ "src": "5693:529:31",
+ "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."
+ },
+ "id": 12515,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_values",
+ "nameLocation": "6236:7:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12506,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12505,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "6256:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12515,
+ "src": "6244:15:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12504,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12503,
+ "name": "Set",
+ "nameLocations": [
+ "6244:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "6244:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "6244:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6243:17:31"
+ },
+ "returnParameters": {
+ "id": 12510,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12509,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12515,
+ "src": "6283:16:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12507,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6283:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12508,
+ "nodeType": "ArrayTypeName",
+ "src": "6283:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6282:18:31"
+ },
+ "scope": 12966,
+ "src": "6227:109:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "canonicalName": "EnumerableSet.Bytes32Set",
+ "id": 12519,
+ "members": [
+ {
+ "constant": false,
+ "id": 12518,
+ "mutability": "mutable",
+ "name": "_inner",
+ "nameLocation": "6393:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12519,
+ "src": "6389:10:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12517,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12516,
+ "name": "Set",
+ "nameLocations": [
+ "6389:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "6389:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "6389:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Bytes32Set",
+ "nameLocation": "6368:10:31",
+ "nodeType": "StructDefinition",
+ "scope": 12966,
+ "src": "6361:45:31",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 12536,
+ "nodeType": "Block",
+ "src": "6652:47:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12531,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12523,
+ "src": "6674:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12532,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6678:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "6674:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12533,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12525,
+ "src": "6686:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12530,
+ "name": "_add",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12324,
+ "src": "6669:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6669:23:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12529,
+ "id": 12535,
+ "nodeType": "Return",
+ "src": "6662:30:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12520,
+ "nodeType": "StructuredDocumentation",
+ "src": "6412:159:31",
+ "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."
+ },
+ "id": 12537,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "add",
+ "nameLocation": "6585:3:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12526,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12523,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "6608:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12537,
+ "src": "6589:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12522,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12521,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "6589:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "6589:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "6589:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12525,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6621:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12537,
+ "src": "6613:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12524,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6613:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6588:39:31"
+ },
+ "returnParameters": {
+ "id": 12529,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12528,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12537,
+ "src": "6646:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12527,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6646:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6645:6:31"
+ },
+ "scope": 12966,
+ "src": "6576:123:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12554,
+ "nodeType": "Block",
+ "src": "6946:50:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12549,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12541,
+ "src": "6971:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12550,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6975:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "6971:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12551,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12543,
+ "src": "6983:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12548,
+ "name": "_remove",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12408,
+ "src": "6963:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12552,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6963:26:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12547,
+ "id": 12553,
+ "nodeType": "Return",
+ "src": "6956:33:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12538,
+ "nodeType": "StructuredDocumentation",
+ "src": "6705:157:31",
+ "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."
+ },
+ "id": 12555,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "remove",
+ "nameLocation": "6876:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12544,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12541,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "6902:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12555,
+ "src": "6883:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12540,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12539,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "6883:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "6883:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "6883:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12543,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6915:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12555,
+ "src": "6907:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12542,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "6907:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6882:39:31"
+ },
+ "returnParameters": {
+ "id": 12547,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12546,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12555,
+ "src": "6940:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12545,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6940:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6939:6:31"
+ },
+ "scope": 12966,
+ "src": "6867:129:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12567,
+ "nodeType": "Block",
+ "src": "7358:35:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12563,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12559,
+ "src": "7375:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12564,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7379:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "7375:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12562,
+ "name": "_clear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12451,
+ "src": "7368:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer)"
+ }
+ },
+ "id": 12565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7368:18:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12566,
+ "nodeType": "ExpressionStatement",
+ "src": "7368:18:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12556,
+ "nodeType": "StructuredDocumentation",
+ "src": "7002:303:31",
+ "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."
+ },
+ "id": 12568,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "clear",
+ "nameLocation": "7319:5:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12560,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12559,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "7344:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12568,
+ "src": "7325:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12558,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12557,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "7325:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "7325:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "7325:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7324:24:31"
+ },
+ "returnParameters": {
+ "id": 12561,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7358:0:31"
+ },
+ "scope": 12966,
+ "src": "7310:83:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12585,
+ "nodeType": "Block",
+ "src": "7560:52:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12580,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12572,
+ "src": "7587:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12581,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7591:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "7587:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12582,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12574,
+ "src": "7599:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12579,
+ "name": "_contains",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12470,
+ "src": "7577:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
+ }
+ },
+ "id": 12583,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7577:28:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12578,
+ "id": 12584,
+ "nodeType": "Return",
+ "src": "7570:35:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12569,
+ "nodeType": "StructuredDocumentation",
+ "src": "7399:70:31",
+ "text": " @dev Returns true if the value is in the set. O(1)."
+ },
+ "id": 12586,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contains",
+ "nameLocation": "7483:8:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12575,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12572,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "7511:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12586,
+ "src": "7492:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12571,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12570,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "7492:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "7492:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "7492:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12574,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7524:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12586,
+ "src": "7516:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12573,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7516:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7491:39:31"
+ },
+ "returnParameters": {
+ "id": 12578,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12577,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12586,
+ "src": "7554:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12576,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7554:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7553:6:31"
+ },
+ "scope": 12966,
+ "src": "7474:138:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12600,
+ "nodeType": "Block",
+ "src": "7765:43:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12596,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12590,
+ "src": "7790:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12597,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7794:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "7790:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12595,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12484,
+ "src": "7782:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 12598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7782:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12594,
+ "id": 12599,
+ "nodeType": "Return",
+ "src": "7775:26:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12587,
+ "nodeType": "StructuredDocumentation",
+ "src": "7618:70:31",
+ "text": " @dev Returns the number of values in the set. O(1)."
+ },
+ "id": 12601,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "length",
+ "nameLocation": "7702:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12591,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12590,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "7728:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12601,
+ "src": "7709:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12589,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12588,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "7709:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "7709:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "7709:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7708:24:31"
+ },
+ "returnParameters": {
+ "id": 12594,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12593,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12601,
+ "src": "7756:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12592,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7756:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7755:9:31"
+ },
+ "scope": 12966,
+ "src": "7693:115:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12618,
+ "nodeType": "Block",
+ "src": "8233:46:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12613,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12605,
+ "src": "8254:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12614,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8258:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "8254:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12615,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12607,
+ "src": "8266:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12612,
+ "name": "_at",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12501,
+ "src": "8250:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
+ }
+ },
+ "id": 12616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8250:22:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 12611,
+ "id": 12617,
+ "nodeType": "Return",
+ "src": "8243:29:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12602,
+ "nodeType": "StructuredDocumentation",
+ "src": "7814:331:31",
+ "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}."
+ },
+ "id": 12619,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "at",
+ "nameLocation": "8159:2:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12608,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12605,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "8181:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12619,
+ "src": "8162:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12604,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12603,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "8162:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "8162:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "8162:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12607,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "8194:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12619,
+ "src": "8186:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12606,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8186:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8161:39:31"
+ },
+ "returnParameters": {
+ "id": 12611,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12610,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12619,
+ "src": "8224:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 12609,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8224:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8223:9:31"
+ },
+ "scope": 12966,
+ "src": "8150:129:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12648,
+ "nodeType": "Block",
+ "src": "8900:192:31",
+ "statements": [
+ {
+ "assignments": [
+ 12633
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12633,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "8927:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12648,
+ "src": "8910:22:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12631,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8910:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12632,
+ "nodeType": "ArrayTypeName",
+ "src": "8910:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12638,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12635,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12623,
+ "src": "8943:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
+ }
+ },
+ "id": 12636,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8947:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12518,
+ "src": "8943:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12634,
+ "name": "_values",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12515,
+ "src": "8935:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"
+ }
+ },
+ "id": 12637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8935:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8910:44:31"
+ },
+ {
+ "assignments": [
+ 12643
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12643,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "8981:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12648,
+ "src": "8964:23:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12641,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8964:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12642,
+ "nodeType": "ArrayTypeName",
+ "src": "8964:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12644,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8964:23:31"
+ },
+ {
+ "AST": {
+ "nativeSrc": "9023:39:31",
+ "nodeType": "YulBlock",
+ "src": "9023:39:31",
+ "statements": [
+ {
+ "nativeSrc": "9037:15:31",
+ "nodeType": "YulAssignment",
+ "src": "9037:15:31",
+ "value": {
+ "name": "store",
+ "nativeSrc": "9047:5:31",
+ "nodeType": "YulIdentifier",
+ "src": "9047:5:31"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "9037:6:31",
+ "nodeType": "YulIdentifier",
+ "src": "9037:6:31"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 12643,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9037:6:31",
+ "valueSize": 1
+ },
+ {
+ "declaration": 12633,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9047:5:31",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 12645,
+ "nodeType": "InlineAssembly",
+ "src": "8998:64:31"
+ },
+ {
+ "expression": {
+ "id": 12646,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12643,
+ "src": "9079:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "functionReturnParameters": 12628,
+ "id": 12647,
+ "nodeType": "Return",
+ "src": "9072:13:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12620,
+ "nodeType": "StructuredDocumentation",
+ "src": "8285:529:31",
+ "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."
+ },
+ "id": 12649,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "values",
+ "nameLocation": "8828:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12624,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12623,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "8854:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12649,
+ "src": "8835:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ },
+ "typeName": {
+ "id": 12622,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12621,
+ "name": "Bytes32Set",
+ "nameLocations": [
+ "8835:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12519,
+ "src": "8835:10:31"
+ },
+ "referencedDeclaration": 12519,
+ "src": "8835:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr",
+ "typeString": "struct EnumerableSet.Bytes32Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8834:24:31"
+ },
+ "returnParameters": {
+ "id": 12628,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12627,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12649,
+ "src": "8882:16:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12625,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "8882:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12626,
+ "nodeType": "ArrayTypeName",
+ "src": "8882:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8881:18:31"
+ },
+ "scope": 12966,
+ "src": "8819:273:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "canonicalName": "EnumerableSet.AddressSet",
+ "id": 12653,
+ "members": [
+ {
+ "constant": false,
+ "id": 12652,
+ "mutability": "mutable",
+ "name": "_inner",
+ "nameLocation": "9149:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12653,
+ "src": "9145:10:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12651,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12650,
+ "name": "Set",
+ "nameLocations": [
+ "9145:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "9145:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "9145:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "AddressSet",
+ "nameLocation": "9124:10:31",
+ "nodeType": "StructDefinition",
+ "scope": 12966,
+ "src": "9117:45:31",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 12679,
+ "nodeType": "Block",
+ "src": "9408:74:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12665,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12657,
+ "src": "9430:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12666,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9434:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "9430:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 12673,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12659,
+ "src": "9466:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 12672,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9458:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 12671,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "9458:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12674,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9458:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 12670,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9450:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9450:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9450:23:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12668,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9442:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12667,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "9442:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12676,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9442:32:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12664,
+ "name": "_add",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12324,
+ "src": "9425:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12677,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9425:50:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12663,
+ "id": 12678,
+ "nodeType": "Return",
+ "src": "9418:57:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12654,
+ "nodeType": "StructuredDocumentation",
+ "src": "9168:159:31",
+ "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."
+ },
+ "id": 12680,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "add",
+ "nameLocation": "9341:3:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12660,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12657,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "9364:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12680,
+ "src": "9345:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12656,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12655,
+ "name": "AddressSet",
+ "nameLocations": [
+ "9345:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "9345:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "9345:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12659,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9377:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12680,
+ "src": "9369:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 12658,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9369:7:31",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9344:39:31"
+ },
+ "returnParameters": {
+ "id": 12663,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12662,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12680,
+ "src": "9402:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12661,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9402:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9401:6:31"
+ },
+ "scope": 12966,
+ "src": "9332:150:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12706,
+ "nodeType": "Block",
+ "src": "9729:77:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12692,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12684,
+ "src": "9754:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12693,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9758:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "9754:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 12700,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12686,
+ "src": "9790:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 12699,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9782:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 12698,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "9782:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9782:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 12697,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9774:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12696,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9774:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12702,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9774:23:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12695,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9766:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12694,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "9766:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12703,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9766:32:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12691,
+ "name": "_remove",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12408,
+ "src": "9746:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12704,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9746:53:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12690,
+ "id": 12705,
+ "nodeType": "Return",
+ "src": "9739:60:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12681,
+ "nodeType": "StructuredDocumentation",
+ "src": "9488:157:31",
+ "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."
+ },
+ "id": 12707,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "remove",
+ "nameLocation": "9659:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12687,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12684,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "9685:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12707,
+ "src": "9666:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12683,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12682,
+ "name": "AddressSet",
+ "nameLocations": [
+ "9666:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "9666:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "9666:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12686,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9698:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12707,
+ "src": "9690:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 12685,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9690:7:31",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9665:39:31"
+ },
+ "returnParameters": {
+ "id": 12690,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12689,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12707,
+ "src": "9723:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12688,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9723:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9722:6:31"
+ },
+ "scope": 12966,
+ "src": "9650:156:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12719,
+ "nodeType": "Block",
+ "src": "10168:35:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12715,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12711,
+ "src": "10185:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12716,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10189:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "10185:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12714,
+ "name": "_clear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12451,
+ "src": "10178:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer)"
+ }
+ },
+ "id": 12717,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10178:18:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12718,
+ "nodeType": "ExpressionStatement",
+ "src": "10178:18:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12708,
+ "nodeType": "StructuredDocumentation",
+ "src": "9812:303:31",
+ "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."
+ },
+ "id": 12720,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "clear",
+ "nameLocation": "10129:5:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12711,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "10154:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12720,
+ "src": "10135:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12710,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12709,
+ "name": "AddressSet",
+ "nameLocations": [
+ "10135:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "10135:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "10135:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10134:24:31"
+ },
+ "returnParameters": {
+ "id": 12713,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10168:0:31"
+ },
+ "scope": 12966,
+ "src": "10120:83:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12746,
+ "nodeType": "Block",
+ "src": "10370:79:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12732,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12724,
+ "src": "10397:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12733,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10401:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "10397:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 12740,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12726,
+ "src": "10433:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 12739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10425:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 12738,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "10425:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10425:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 12737,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10417:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12736,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10417:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12742,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10417:23:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10409:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12734,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "10409:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10409:32:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12731,
+ "name": "_contains",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12470,
+ "src": "10387:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
+ }
+ },
+ "id": 12744,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10387:55:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12730,
+ "id": 12745,
+ "nodeType": "Return",
+ "src": "10380:62:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12721,
+ "nodeType": "StructuredDocumentation",
+ "src": "10209:70:31",
+ "text": " @dev Returns true if the value is in the set. O(1)."
+ },
+ "id": 12747,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contains",
+ "nameLocation": "10293:8:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12724,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "10321:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12747,
+ "src": "10302:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12723,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12722,
+ "name": "AddressSet",
+ "nameLocations": [
+ "10302:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "10302:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "10302:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12726,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10334:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12747,
+ "src": "10326:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 12725,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10326:7:31",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10301:39:31"
+ },
+ "returnParameters": {
+ "id": 12730,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12729,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12747,
+ "src": "10364:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12728,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "10364:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10363:6:31"
+ },
+ "scope": 12966,
+ "src": "10284:165:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12761,
+ "nodeType": "Block",
+ "src": "10602:43:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12757,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12751,
+ "src": "10627:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12758,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10631:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "10627:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12756,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12484,
+ "src": "10619:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 12759,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10619:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12755,
+ "id": 12760,
+ "nodeType": "Return",
+ "src": "10612:26:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12748,
+ "nodeType": "StructuredDocumentation",
+ "src": "10455:70:31",
+ "text": " @dev Returns the number of values in the set. O(1)."
+ },
+ "id": 12762,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "length",
+ "nameLocation": "10539:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12752,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12751,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "10565:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12762,
+ "src": "10546:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12750,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12749,
+ "name": "AddressSet",
+ "nameLocations": [
+ "10546:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "10546:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "10546:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10545:24:31"
+ },
+ "returnParameters": {
+ "id": 12755,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12754,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12762,
+ "src": "10593:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12753,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10593:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10592:9:31"
+ },
+ "scope": 12966,
+ "src": "10530:115:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12788,
+ "nodeType": "Block",
+ "src": "11070:73:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12780,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12766,
+ "src": "11115:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12781,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11119:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "11115:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12782,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12768,
+ "src": "11127:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12779,
+ "name": "_at",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12501,
+ "src": "11111:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
+ }
+ },
+ "id": 12783,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11111:22:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12778,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11103:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12777,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11103:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11103:31:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11095:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint160_$",
+ "typeString": "type(uint160)"
+ },
+ "typeName": {
+ "id": 12775,
+ "name": "uint160",
+ "nodeType": "ElementaryTypeName",
+ "src": "11095:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12785,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11095:40:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint160",
+ "typeString": "uint160"
+ }
+ ],
+ "id": 12774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "11087:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 12773,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11087:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11087:49:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 12772,
+ "id": 12787,
+ "nodeType": "Return",
+ "src": "11080:56:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12763,
+ "nodeType": "StructuredDocumentation",
+ "src": "10651:331:31",
+ "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}."
+ },
+ "id": 12789,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "at",
+ "nameLocation": "10996:2:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12769,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12766,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "11018:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12789,
+ "src": "10999:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12765,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12764,
+ "name": "AddressSet",
+ "nameLocations": [
+ "10999:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "10999:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "10999:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12768,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "11031:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12789,
+ "src": "11023:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12767,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11023:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10998:39:31"
+ },
+ "returnParameters": {
+ "id": 12772,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12771,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12789,
+ "src": "11061:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 12770,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11061:7:31",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11060:9:31"
+ },
+ "scope": 12966,
+ "src": "10987:156:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12818,
+ "nodeType": "Block",
+ "src": "11764:192:31",
+ "statements": [
+ {
+ "assignments": [
+ 12803
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12803,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "11791:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12818,
+ "src": "11774:22:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12801,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "11774:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12802,
+ "nodeType": "ArrayTypeName",
+ "src": "11774:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12808,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12805,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12793,
+ "src": "11807:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet storage pointer"
+ }
+ },
+ "id": 12806,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11811:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12652,
+ "src": "11807:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12804,
+ "name": "_values",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12515,
+ "src": "11799:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"
+ }
+ },
+ "id": 12807,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11799:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11774:44:31"
+ },
+ {
+ "assignments": [
+ 12813
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12813,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "11845:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12818,
+ "src": "11828:23:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12811,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11828:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 12812,
+ "nodeType": "ArrayTypeName",
+ "src": "11828:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12814,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11828:23:31"
+ },
+ {
+ "AST": {
+ "nativeSrc": "11887:39:31",
+ "nodeType": "YulBlock",
+ "src": "11887:39:31",
+ "statements": [
+ {
+ "nativeSrc": "11901:15:31",
+ "nodeType": "YulAssignment",
+ "src": "11901:15:31",
+ "value": {
+ "name": "store",
+ "nativeSrc": "11911:5:31",
+ "nodeType": "YulIdentifier",
+ "src": "11911:5:31"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "11901:6:31",
+ "nodeType": "YulIdentifier",
+ "src": "11901:6:31"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 12813,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11901:6:31",
+ "valueSize": 1
+ },
+ {
+ "declaration": 12803,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11911:5:31",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 12815,
+ "nodeType": "InlineAssembly",
+ "src": "11862:64:31"
+ },
+ {
+ "expression": {
+ "id": 12816,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12813,
+ "src": "11943:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "functionReturnParameters": 12798,
+ "id": 12817,
+ "nodeType": "Return",
+ "src": "11936:13:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12790,
+ "nodeType": "StructuredDocumentation",
+ "src": "11149:529:31",
+ "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."
+ },
+ "id": 12819,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "values",
+ "nameLocation": "11692:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12794,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12793,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "11718:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12819,
+ "src": "11699:22:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 12792,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12791,
+ "name": "AddressSet",
+ "nameLocations": [
+ "11699:10:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "11699:10:31"
+ },
+ "referencedDeclaration": 12653,
+ "src": "11699:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11698:24:31"
+ },
+ "returnParameters": {
+ "id": 12798,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12797,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12819,
+ "src": "11746:16:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12795,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11746:7:31",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 12796,
+ "nodeType": "ArrayTypeName",
+ "src": "11746:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11745:18:31"
+ },
+ "scope": 12966,
+ "src": "11683:273:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "canonicalName": "EnumerableSet.UintSet",
+ "id": 12823,
+ "members": [
+ {
+ "constant": false,
+ "id": 12822,
+ "mutability": "mutable",
+ "name": "_inner",
+ "nameLocation": "12007:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12823,
+ "src": "12003:10:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ },
+ "typeName": {
+ "id": 12821,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12820,
+ "name": "Set",
+ "nameLocations": [
+ "12003:3:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12282,
+ "src": "12003:3:31"
+ },
+ "referencedDeclaration": 12282,
+ "src": "12003:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage_ptr",
+ "typeString": "struct EnumerableSet.Set"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "UintSet",
+ "nameLocation": "11985:7:31",
+ "nodeType": "StructDefinition",
+ "scope": 12966,
+ "src": "11978:42:31",
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 12843,
+ "nodeType": "Block",
+ "src": "12263:56:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12835,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12827,
+ "src": "12285:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12836,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12289:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "12285:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 12839,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12829,
+ "src": "12305:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12838,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12297:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12837,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "12297:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12297:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12834,
+ "name": "_add",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12324,
+ "src": "12280:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12280:32:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12833,
+ "id": 12842,
+ "nodeType": "Return",
+ "src": "12273:39:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12824,
+ "nodeType": "StructuredDocumentation",
+ "src": "12026:159:31",
+ "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."
+ },
+ "id": 12844,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "add",
+ "nameLocation": "12199:3:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12830,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12827,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "12219:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12844,
+ "src": "12203:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12826,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12825,
+ "name": "UintSet",
+ "nameLocations": [
+ "12203:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "12203:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "12203:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12829,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12232:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12844,
+ "src": "12224:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12828,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12224:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12202:36:31"
+ },
+ "returnParameters": {
+ "id": 12833,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12832,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12844,
+ "src": "12257:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12831,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12257:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12256:6:31"
+ },
+ "scope": 12966,
+ "src": "12190:129:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12864,
+ "nodeType": "Block",
+ "src": "12563:59:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12856,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12848,
+ "src": "12588:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12857,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12592:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "12588:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 12860,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12850,
+ "src": "12608:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "12600:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12858,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "12600:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12600:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12855,
+ "name": "_remove",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12408,
+ "src": "12580:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
+ }
+ },
+ "id": 12862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12580:35:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12854,
+ "id": 12863,
+ "nodeType": "Return",
+ "src": "12573:42:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12845,
+ "nodeType": "StructuredDocumentation",
+ "src": "12325:157:31",
+ "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."
+ },
+ "id": 12865,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "remove",
+ "nameLocation": "12496:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12851,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12848,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "12519:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12865,
+ "src": "12503:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12847,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12846,
+ "name": "UintSet",
+ "nameLocations": [
+ "12503:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "12503:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "12503:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12850,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "12532:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12865,
+ "src": "12524:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12849,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12524:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12502:36:31"
+ },
+ "returnParameters": {
+ "id": 12854,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12853,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12865,
+ "src": "12557:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12852,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12557:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12556:6:31"
+ },
+ "scope": 12966,
+ "src": "12487:135:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12877,
+ "nodeType": "Block",
+ "src": "12981:35:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12873,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12869,
+ "src": "12998:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12874,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13002:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "12998:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12872,
+ "name": "_clear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12451,
+ "src": "12991:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer)"
+ }
+ },
+ "id": 12875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12991:18:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 12876,
+ "nodeType": "ExpressionStatement",
+ "src": "12991:18:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12866,
+ "nodeType": "StructuredDocumentation",
+ "src": "12628:303:31",
+ "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."
+ },
+ "id": 12878,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "clear",
+ "nameLocation": "12945:5:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12870,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12869,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "12967:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12878,
+ "src": "12951:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12868,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12867,
+ "name": "UintSet",
+ "nameLocations": [
+ "12951:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "12951:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "12951:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12950:21:31"
+ },
+ "returnParameters": {
+ "id": 12871,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12981:0:31"
+ },
+ "scope": 12966,
+ "src": "12936:80:31",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12898,
+ "nodeType": "Block",
+ "src": "13180:61:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12890,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12882,
+ "src": "13207:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12891,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13211:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "13207:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "id": 12894,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12884,
+ "src": "13227:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13219:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes32_$",
+ "typeString": "type(bytes32)"
+ },
+ "typeName": {
+ "id": 12892,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "13219:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13219:14:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12889,
+ "name": "_contains",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12470,
+ "src": "13197:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
+ }
+ },
+ "id": 12896,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13197:37:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 12888,
+ "id": 12897,
+ "nodeType": "Return",
+ "src": "13190:44:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12879,
+ "nodeType": "StructuredDocumentation",
+ "src": "13022:70:31",
+ "text": " @dev Returns true if the value is in the set. O(1)."
+ },
+ "id": 12899,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contains",
+ "nameLocation": "13106:8:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12885,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12882,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "13131:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12899,
+ "src": "13115:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12881,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12880,
+ "name": "UintSet",
+ "nameLocations": [
+ "13115:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "13115:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "13115:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12884,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "13144:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12899,
+ "src": "13136:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12883,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13136:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13114:36:31"
+ },
+ "returnParameters": {
+ "id": 12888,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12887,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12899,
+ "src": "13174:4:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 12886,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "13174:4:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13173:6:31"
+ },
+ "scope": 12966,
+ "src": "13097:144:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12913,
+ "nodeType": "Block",
+ "src": "13391:43:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12909,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12903,
+ "src": "13416:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12910,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13420:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "13416:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12908,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12484,
+ "src": "13408:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
+ }
+ },
+ "id": 12911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13408:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12907,
+ "id": 12912,
+ "nodeType": "Return",
+ "src": "13401:26:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12900,
+ "nodeType": "StructuredDocumentation",
+ "src": "13247:70:31",
+ "text": " @dev Returns the number of values in the set. O(1)."
+ },
+ "id": 12914,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "length",
+ "nameLocation": "13331:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12904,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12903,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "13354:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12914,
+ "src": "13338:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12902,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12901,
+ "name": "UintSet",
+ "nameLocations": [
+ "13338:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "13338:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "13338:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13337:21:31"
+ },
+ "returnParameters": {
+ "id": 12907,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12906,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12914,
+ "src": "13382:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12905,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13382:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13381:9:31"
+ },
+ "scope": 12966,
+ "src": "13322:112:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12934,
+ "nodeType": "Block",
+ "src": "13856:55:31",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12928,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12918,
+ "src": "13885:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12929,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13889:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "13885:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ },
+ {
+ "id": 12930,
+ "name": "index",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12920,
+ "src": "13897:5:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 12927,
+ "name": "_at",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12501,
+ "src": "13881:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
+ }
+ },
+ "id": 12931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13881:22:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 12926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13873:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 12925,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13873:7:31",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 12932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13873:31:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 12924,
+ "id": 12933,
+ "nodeType": "Return",
+ "src": "13866:38:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12915,
+ "nodeType": "StructuredDocumentation",
+ "src": "13440:331:31",
+ "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}."
+ },
+ "id": 12935,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "at",
+ "nameLocation": "13785:2:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12921,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12918,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "13804:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12935,
+ "src": "13788:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12917,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12916,
+ "name": "UintSet",
+ "nameLocations": [
+ "13788:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "13788:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "13788:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 12920,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "13817:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12935,
+ "src": "13809:13:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12919,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13809:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13787:36:31"
+ },
+ "returnParameters": {
+ "id": 12924,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12923,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12935,
+ "src": "13847:7:31",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12922,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13847:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13846:9:31"
+ },
+ "scope": 12966,
+ "src": "13776:135:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 12964,
+ "nodeType": "Block",
+ "src": "14529:192:31",
+ "statements": [
+ {
+ "assignments": [
+ 12949
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12949,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "14556:5:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12964,
+ "src": "14539:22:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12947,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "14539:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 12948,
+ "nodeType": "ArrayTypeName",
+ "src": "14539:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
+ "typeString": "bytes32[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12954,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 12951,
+ "name": "set",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12939,
+ "src": "14572:3:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet storage pointer"
+ }
+ },
+ "id": 12952,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14576:6:31",
+ "memberName": "_inner",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12822,
+ "src": "14572:10:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Set_$12282_storage",
+ "typeString": "struct EnumerableSet.Set storage ref"
+ }
+ ],
+ "id": 12950,
+ "name": "_values",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12515,
+ "src": "14564:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
+ "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"
+ }
+ },
+ "id": 12953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14564:19:31",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
+ "typeString": "bytes32[] memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14539:44:31"
+ },
+ {
+ "assignments": [
+ 12959
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 12959,
+ "mutability": "mutable",
+ "name": "result",
+ "nameLocation": "14610:6:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12964,
+ "src": "14593:23:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12957,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14593:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 12958,
+ "nodeType": "ArrayTypeName",
+ "src": "14593:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 12960,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14593:23:31"
+ },
+ {
+ "AST": {
+ "nativeSrc": "14652:39:31",
+ "nodeType": "YulBlock",
+ "src": "14652:39:31",
+ "statements": [
+ {
+ "nativeSrc": "14666:15:31",
+ "nodeType": "YulAssignment",
+ "src": "14666:15:31",
+ "value": {
+ "name": "store",
+ "nativeSrc": "14676:5:31",
+ "nodeType": "YulIdentifier",
+ "src": "14676:5:31"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "14666:6:31",
+ "nodeType": "YulIdentifier",
+ "src": "14666:6:31"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 12959,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14666:6:31",
+ "valueSize": 1
+ },
+ {
+ "declaration": 12949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14676:5:31",
+ "valueSize": 1
+ }
+ ],
+ "flags": [
+ "memory-safe"
+ ],
+ "id": 12961,
+ "nodeType": "InlineAssembly",
+ "src": "14627:64:31"
+ },
+ {
+ "expression": {
+ "id": 12962,
+ "name": "result",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12959,
+ "src": "14708:6:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "functionReturnParameters": 12944,
+ "id": 12963,
+ "nodeType": "Return",
+ "src": "14701:13:31"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 12936,
+ "nodeType": "StructuredDocumentation",
+ "src": "13917:529:31",
+ "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."
+ },
+ "id": 12965,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "values",
+ "nameLocation": "14460:6:31",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 12940,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12939,
+ "mutability": "mutable",
+ "name": "set",
+ "nameLocation": "14483:3:31",
+ "nodeType": "VariableDeclaration",
+ "scope": 12965,
+ "src": "14467:19:31",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ },
+ "typeName": {
+ "id": 12938,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 12937,
+ "name": "UintSet",
+ "nameLocations": [
+ "14467:7:31"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12823,
+ "src": "14467:7:31"
+ },
+ "referencedDeclaration": 12823,
+ "src": "14467:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr",
+ "typeString": "struct EnumerableSet.UintSet"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14466:21:31"
+ },
+ "returnParameters": {
+ "id": 12944,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 12943,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12965,
+ "src": "14511:16:31",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 12941,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14511:7:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 12942,
+ "nodeType": "ArrayTypeName",
+ "src": "14511:9:31",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14510:18:31"
+ },
+ "scope": 12966,
+ "src": "14451:270:31",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 12967,
+ "src": "1425:13298:31",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "205:14519:31"
+ },
+ "id": 31
+ },
+ "@quant-finance/solidity-datetime/contracts/DateTime.sol": {
+ "ast": {
+ "absolutePath": "@quant-finance/solidity-datetime/contracts/DateTime.sol",
+ "exportedSymbols": {
+ "DateTime": [
+ 14469
+ ]
+ },
+ "id": 14470,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 12968,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "32:23:32"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "DateTime",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 14469,
+ "linearizedBaseContracts": [
+ 14469
+ ],
+ "name": "DateTime",
+ "nameLocation": "936:8:32",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 12975,
+ "mutability": "constant",
+ "name": "SECONDS_PER_DAY",
+ "nameLocation": "968:15:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "951:47:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12969,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "951:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_86400_by_1",
+ "typeString": "int_const 86400"
+ },
+ "id": 12974,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_rational_1440_by_1",
+ "typeString": "int_const 1440"
+ },
+ "id": 12972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3234",
+ "id": 12970,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "986:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ "value": "24"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3630",
+ "id": 12971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "991:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "src": "986:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1440_by_1",
+ "typeString": "int_const 1440"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3630",
+ "id": 12973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "996:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "src": "986:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_86400_by_1",
+ "typeString": "int_const 86400"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12980,
+ "mutability": "constant",
+ "name": "SECONDS_PER_HOUR",
+ "nameLocation": "1021:16:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1004:43:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12976,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1004:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_3600_by_1",
+ "typeString": "int_const 3600"
+ },
+ "id": 12979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3630",
+ "id": 12977,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1040:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3630",
+ "id": 12978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1045:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "src": "1040:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3600_by_1",
+ "typeString": "int_const 3600"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12983,
+ "mutability": "constant",
+ "name": "SECONDS_PER_MINUTE",
+ "nameLocation": "1070:18:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1053:40:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12981,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1053:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3630",
+ "id": 12982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1091:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12986,
+ "mutability": "constant",
+ "name": "OFFSET19700101",
+ "nameLocation": "1115:14:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1099:40:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 12984,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1099:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "value": {
+ "hexValue": "32343430353838",
+ "id": 12985,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1132:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2440588_by_1",
+ "typeString": "int_const 2440588"
+ },
+ "value": "2440588"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12989,
+ "mutability": "constant",
+ "name": "DOW_MON",
+ "nameLocation": "1163:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1146:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12987,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1146:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31",
+ "id": 12988,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1173:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12992,
+ "mutability": "constant",
+ "name": "DOW_TUE",
+ "nameLocation": "1197:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1180:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12990,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1180:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32",
+ "id": 12991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1207:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12995,
+ "mutability": "constant",
+ "name": "DOW_WED",
+ "nameLocation": "1231:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1214:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12993,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1214:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "33",
+ "id": 12994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1241:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 12998,
+ "mutability": "constant",
+ "name": "DOW_THU",
+ "nameLocation": "1265:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1248:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12996,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1248:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34",
+ "id": 12997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1275:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 13001,
+ "mutability": "constant",
+ "name": "DOW_FRI",
+ "nameLocation": "1299:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1282:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 12999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1282:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35",
+ "id": 13000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1309:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 13004,
+ "mutability": "constant",
+ "name": "DOW_SAT",
+ "nameLocation": "1333:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1316:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13002,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1316:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36",
+ "id": 13003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1343:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 13007,
+ "mutability": "constant",
+ "name": "DOW_SUN",
+ "nameLocation": "1367:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14469,
+ "src": "1350:28:32",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13005,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1350:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37",
+ "id": 13006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1377:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13117,
+ "nodeType": "Block",
+ "src": "2144:426:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13019,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13009,
+ "src": "2162:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "hexValue": "31393730",
+ "id": 13020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2170:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1970_by_1",
+ "typeString": "int_const 1970"
+ },
+ "value": "1970"
+ },
+ "src": "2162:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 13018,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "2154:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 13022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2154:21:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13023,
+ "nodeType": "ExpressionStatement",
+ "src": "2154:21:32"
+ },
+ {
+ "assignments": [
+ 13025
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13025,
+ "mutability": "mutable",
+ "name": "_year",
+ "nameLocation": "2192:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13117,
+ "src": "2185:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13024,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2185:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13030,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13028,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13009,
+ "src": "2207:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2200:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 13026,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2200:6:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13029,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2200:12:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2185:27:32"
+ },
+ {
+ "assignments": [
+ 13032
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13032,
+ "mutability": "mutable",
+ "name": "_month",
+ "nameLocation": "2229:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13117,
+ "src": "2222:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13031,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2222:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13037,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13035,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13011,
+ "src": "2245:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13034,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2238:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 13033,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2238:6:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2238:13:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2222:29:32"
+ },
+ {
+ "assignments": [
+ 13039
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13039,
+ "mutability": "mutable",
+ "name": "_day",
+ "nameLocation": "2268:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13117,
+ "src": "2261:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13038,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2261:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13044,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13042,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13013,
+ "src": "2282:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13041,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2275:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 13040,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2275:6:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2275:11:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2261:25:32"
+ },
+ {
+ "assignments": [
+ 13046
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13046,
+ "mutability": "mutable",
+ "name": "__days",
+ "nameLocation": "2304:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13117,
+ "src": "2297:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13045,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2297:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13109,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13106,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13066,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13047,
+ "name": "_day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13039,
+ "src": "2313:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3332303735",
+ "id": 13048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2320:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32075_by_1",
+ "typeString": "int_const 32075"
+ },
+ "value": "32075"
+ },
+ "src": "2313:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13065,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31343631",
+ "id": 13050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2329:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1461_by_1",
+ "typeString": "int_const 1461"
+ },
+ "value": "1461"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13060,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13051,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13025,
+ "src": "2337:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "34383030",
+ "id": 13052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2345:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4800_by_1",
+ "typeString": "int_const 4800"
+ },
+ "value": "4800"
+ },
+ "src": "2337:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13059,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13054,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13032,
+ "src": "2353:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3134",
+ "id": 13055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2362:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14_by_1",
+ "typeString": "int_const 14"
+ },
+ "value": "14"
+ },
+ "src": "2353:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13057,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2352:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13058,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2368:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "2352:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2337:33:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13061,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2336:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2329:42:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13063,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2328:44:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 13064,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2375:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "2328:48:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2313:63:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "333637",
+ "id": 13067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2392:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_367_by_1",
+ "typeString": "int_const 367"
+ },
+ "value": "367"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13080,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13068,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13032,
+ "src": "2399:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 13069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2408:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "2399:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13071,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13032,
+ "src": "2414:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3134",
+ "id": 13072,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2423:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14_by_1",
+ "typeString": "int_const 14"
+ },
+ "value": "14"
+ },
+ "src": "2414:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13074,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2413:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2429:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "2413:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13077,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2412:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2435:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "2412:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2399:38:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13081,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2398:40:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2392:46:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13083,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2391:48:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2442:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "2391:53:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2313:131:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13102,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "33",
+ "id": 13087,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2460:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13097,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13088,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13025,
+ "src": "2466:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "34393030",
+ "id": 13089,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2474:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4900_by_1",
+ "typeString": "int_const 4900"
+ },
+ "value": "4900"
+ },
+ "src": "2466:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13096,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13091,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13032,
+ "src": "2482:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3134",
+ "id": 13092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2491:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14_by_1",
+ "typeString": "int_const 14"
+ },
+ "value": "14"
+ },
+ "src": "2482:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13094,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2481:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2497:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "2481:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2466:33:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13098,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2465:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "313030",
+ "id": 13099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2503:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "src": "2465:41:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13101,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2464:43:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2460:47:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13103,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2459:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 13104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2511:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "2459:53:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2313:199:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 13107,
+ "name": "OFFSET19700101",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12986,
+ "src": "2515:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "2313:216:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2297:232:32"
+ },
+ {
+ "expression": {
+ "id": 13115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13110,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13016,
+ "src": "2540:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13113,
+ "name": "__days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13046,
+ "src": "2556:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 13112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2548:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 13111,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2548:7:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2548:15:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2540:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13116,
+ "nodeType": "ExpressionStatement",
+ "src": "2540:23:32"
+ }
+ ]
+ },
+ "id": 13118,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_daysFromDate",
+ "nameLocation": "2050:13:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13014,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13009,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "2072:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13118,
+ "src": "2064:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13008,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2064:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13011,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "2086:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13118,
+ "src": "2078:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13010,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2078:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13013,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "2101:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13118,
+ "src": "2093:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13012,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2093:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2063:42:32"
+ },
+ "returnParameters": {
+ "id": 13017,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13016,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "2137:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13118,
+ "src": "2129:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13015,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2129:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2128:15:32"
+ },
+ "scope": 14469,
+ "src": "2041:529:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13262,
+ "nodeType": "Block",
+ "src": "3424:642:32",
+ "statements": [
+ {
+ "id": 13261,
+ "nodeType": "UncheckedBlock",
+ "src": "3434:626:32",
+ "statements": [
+ {
+ "assignments": [
+ 13130
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13130,
+ "mutability": "mutable",
+ "name": "__days",
+ "nameLocation": "3465:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3458:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13129,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3458:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13135,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13133,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13120,
+ "src": "3481:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3474:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_int256_$",
+ "typeString": "type(int256)"
+ },
+ "typeName": {
+ "id": 13131,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3474:6:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3474:13:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3458:29:32"
+ },
+ {
+ "assignments": [
+ 13137
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13137,
+ "mutability": "mutable",
+ "name": "L",
+ "nameLocation": "3509:1:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3502:8:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13136,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3502:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13143,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13140,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13138,
+ "name": "__days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13130,
+ "src": "3513:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3638353639",
+ "id": 13139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3522:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_68569_by_1",
+ "typeString": "int_const 68569"
+ },
+ "value": "68569"
+ },
+ "src": "3513:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 13141,
+ "name": "OFFSET19700101",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12986,
+ "src": "3530:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3513:31:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3502:42:32"
+ },
+ {
+ "assignments": [
+ 13145
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13145,
+ "mutability": "mutable",
+ "name": "N",
+ "nameLocation": "3565:1:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3558:8:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13144,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3558:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13152,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13151,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "34",
+ "id": 13146,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3570:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13147,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3574:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3570:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13149,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3569:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "313436303937",
+ "id": 13150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3579:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_146097_by_1",
+ "typeString": "int_const 146097"
+ },
+ "value": "146097"
+ },
+ "src": "3569:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3558:27:32"
+ },
+ {
+ "expression": {
+ "id": 13164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13153,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3599:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13154,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3603:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "313436303937",
+ "id": 13155,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3608:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_146097_by_1",
+ "typeString": "int_const 146097"
+ },
+ "value": "146097"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13156,
+ "name": "N",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13145,
+ "src": "3617:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3608:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 13158,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3621:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "3608:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13160,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3607:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 13161,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3626:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "3607:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3603:24:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3599:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 13165,
+ "nodeType": "ExpressionStatement",
+ "src": "3599:28:32"
+ },
+ {
+ "assignments": [
+ 13167
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13167,
+ "mutability": "mutable",
+ "name": "_year",
+ "nameLocation": "3648:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3641:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13166,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3641:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13177,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13176,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "34303030",
+ "id": 13168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3657:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4000_by_1",
+ "typeString": "int_const 4000"
+ },
+ "value": "4000"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13171,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13169,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3665:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13170,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3669:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "3665:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13172,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3664:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3657:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13174,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3656:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "31343631303031",
+ "id": 13175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3675:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1461001_by_1",
+ "typeString": "int_const 1461001"
+ },
+ "value": "1461001"
+ },
+ "src": "3656:26:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3641:41:32"
+ },
+ {
+ "expression": {
+ "id": 13189,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13178,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3696:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13188,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13186,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13179,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3700:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "31343631",
+ "id": 13180,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3705:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1461_by_1",
+ "typeString": "int_const 1461"
+ },
+ "value": "1461"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13181,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13167,
+ "src": "3712:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3705:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13183,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3704:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 13184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3721:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "3704:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3700:22:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3331",
+ "id": 13187,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3725:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_31_by_1",
+ "typeString": "int_const 31"
+ },
+ "value": "31"
+ },
+ "src": "3700:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3696:31:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 13190,
+ "nodeType": "ExpressionStatement",
+ "src": "3696:31:32"
+ },
+ {
+ "assignments": [
+ 13192
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13192,
+ "mutability": "mutable",
+ "name": "_month",
+ "nameLocation": "3748:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3741:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13191,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3741:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13199,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13198,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13195,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3830",
+ "id": 13193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3758:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ "value": "80"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13194,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3763:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3758:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13196,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3757:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32343437",
+ "id": 13197,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3768:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2447_by_1",
+ "typeString": "int_const 2447"
+ },
+ "value": "2447"
+ },
+ "src": "3757:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3741:31:32"
+ },
+ {
+ "assignments": [
+ 13201
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13201,
+ "mutability": "mutable",
+ "name": "_day",
+ "nameLocation": "3793:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13261,
+ "src": "3786:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "typeName": {
+ "id": 13200,
+ "name": "int256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3786:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13210,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13202,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3800:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "32343437",
+ "id": 13203,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3805:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2447_by_1",
+ "typeString": "int_const 2447"
+ },
+ "value": "2447"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13204,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13192,
+ "src": "3812:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3805:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13206,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3804:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3830",
+ "id": 13207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3822:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_80_by_1",
+ "typeString": "int_const 80"
+ },
+ "value": "80"
+ },
+ "src": "3804:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3800:24:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3786:38:32"
+ },
+ {
+ "expression": {
+ "id": 13215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13211,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3838:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13212,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13192,
+ "src": "3842:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3131",
+ "id": 13213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3851:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11_by_1",
+ "typeString": "int_const 11"
+ },
+ "value": "11"
+ },
+ "src": "3842:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3838:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 13216,
+ "nodeType": "ExpressionStatement",
+ "src": "3838:15:32"
+ },
+ {
+ "expression": {
+ "id": 13225,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13217,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13192,
+ "src": "3867:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13218,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13192,
+ "src": "3876:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 13219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3885:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "3876:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3132",
+ "id": 13221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3889:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13222,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3894:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3889:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3876:19:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3867:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 13226,
+ "nodeType": "ExpressionStatement",
+ "src": "3867:28:32"
+ },
+ {
+ "expression": {
+ "id": 13238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13227,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13167,
+ "src": "3909:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13235,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13233,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "313030",
+ "id": 13228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3917:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ },
+ "id": 13231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13229,
+ "name": "N",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13145,
+ "src": "3924:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "3439",
+ "id": 13230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3928:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_49_by_1",
+ "typeString": "int_const 49"
+ },
+ "value": "49"
+ },
+ "src": "3924:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "id": 13232,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3923:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3917:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 13234,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13167,
+ "src": "3934:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3917:22:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 13236,
+ "name": "L",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13137,
+ "src": "3942:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3917:26:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "src": "3909:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 13239,
+ "nodeType": "ExpressionStatement",
+ "src": "3909:34:32"
+ },
+ {
+ "expression": {
+ "id": 13245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13240,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13123,
+ "src": "3958:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13243,
+ "name": "_year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13167,
+ "src": "3973:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 13242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3965:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 13241,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3965:7:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13244,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3965:14:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3958:21:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13246,
+ "nodeType": "ExpressionStatement",
+ "src": "3958:21:32"
+ },
+ {
+ "expression": {
+ "id": 13252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13247,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13125,
+ "src": "3993:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13250,
+ "name": "_month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13192,
+ "src": "4009:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 13249,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4001:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 13248,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4001:7:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4001:15:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3993:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13253,
+ "nodeType": "ExpressionStatement",
+ "src": "3993:23:32"
+ },
+ {
+ "expression": {
+ "id": 13259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13254,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13127,
+ "src": "4030:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13257,
+ "name": "_day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13201,
+ "src": "4044:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ ],
+ "id": 13256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4036:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 13255,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4036:7:32",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 13258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4036:13:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4030:19:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13260,
+ "nodeType": "ExpressionStatement",
+ "src": "4030:19:32"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 13263,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_daysToDate",
+ "nameLocation": "3332:11:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13121,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13120,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "3352:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13263,
+ "src": "3344:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3344:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3343:15:32"
+ },
+ "returnParameters": {
+ "id": 13128,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13123,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "3390:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13263,
+ "src": "3382:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13122,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3382:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13125,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "3404:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13263,
+ "src": "3396:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13124,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3396:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13127,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "3419:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13263,
+ "src": "3411:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13126,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3411:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3381:42:32"
+ },
+ "scope": 14469,
+ "src": "3323:743:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13284,
+ "nodeType": "Block",
+ "src": "4183:78:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13282,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13274,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13272,
+ "src": "4193:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13276,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13265,
+ "src": "4219:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13277,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13267,
+ "src": "4225:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13278,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13269,
+ "src": "4232:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13275,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "4205:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4205:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13280,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "4239:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4205:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4193:61:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13283,
+ "nodeType": "ExpressionStatement",
+ "src": "4193:61:32"
+ }
+ ]
+ },
+ "id": 13285,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "timestampFromDate",
+ "nameLocation": "4081:17:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13270,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13265,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "4107:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13285,
+ "src": "4099:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13264,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4099:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13267,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "4121:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13285,
+ "src": "4113:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13266,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4113:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13269,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "4136:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13285,
+ "src": "4128:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13268,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4128:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4098:42:32"
+ },
+ "returnParameters": {
+ "id": 13273,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13272,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "4172:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13285,
+ "src": "4164:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13271,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4164:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4163:19:32"
+ },
+ "scope": 14469,
+ "src": "4072:189:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13322,
+ "nodeType": "Block",
+ "src": "4510:155:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13320,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13302,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13300,
+ "src": "4520:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13319,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13313,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13309,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13304,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13287,
+ "src": "4546:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13305,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13289,
+ "src": "4552:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13306,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13291,
+ "src": "4559:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13303,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "4532:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13307,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4532:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13308,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "4566:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4532:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13310,
+ "name": "hour",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13293,
+ "src": "4584:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13311,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "4591:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4584:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4532:75:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13314,
+ "name": "minute",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13295,
+ "src": "4622:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13315,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "4631:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4622:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4532:117:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 13318,
+ "name": "second",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13297,
+ "src": "4652:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4532:126:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4520:138:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13321,
+ "nodeType": "ExpressionStatement",
+ "src": "4520:138:32"
+ }
+ ]
+ },
+ "id": 13323,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "timestampFromDateTime",
+ "nameLocation": "4276:21:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13298,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13287,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "4315:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4307:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13286,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4307:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13289,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "4337:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4329:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13288,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4329:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13291,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "4360:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4352:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13290,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4352:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13293,
+ "mutability": "mutable",
+ "name": "hour",
+ "nameLocation": "4381:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4373:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13292,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4373:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13295,
+ "mutability": "mutable",
+ "name": "minute",
+ "nameLocation": "4403:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4395:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13294,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4395:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13297,
+ "mutability": "mutable",
+ "name": "second",
+ "nameLocation": "4427:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4419:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13296,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4419:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4297:142:32"
+ },
+ "returnParameters": {
+ "id": 13301,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13300,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "4495:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13323,
+ "src": "4487:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13299,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4487:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4486:19:32"
+ },
+ "scope": 14469,
+ "src": "4267:398:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13346,
+ "nodeType": "Block",
+ "src": "4780:112:32",
+ "statements": [
+ {
+ "id": 13345,
+ "nodeType": "UncheckedBlock",
+ "src": "4790:96:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 13334,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13328,
+ "src": "4815:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13335,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13330,
+ "src": "4821:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13336,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13332,
+ "src": "4828:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13337,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "4814:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13339,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13325,
+ "src": "4847:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13340,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "4859:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4847:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13338,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "4835:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13342,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4835:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "src": "4814:61:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13344,
+ "nodeType": "ExpressionStatement",
+ "src": "4814:61:32"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 13347,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "timestampToDate",
+ "nameLocation": "4680:15:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13326,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13325,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "4704:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13347,
+ "src": "4696:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13324,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4696:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4695:19:32"
+ },
+ "returnParameters": {
+ "id": 13333,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13328,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "4746:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13347,
+ "src": "4738:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13327,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4738:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13330,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "4760:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13347,
+ "src": "4752:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13329,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4752:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13332,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "4775:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13347,
+ "src": "4767:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13331,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4767:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4737:42:32"
+ },
+ "scope": 14469,
+ "src": "4671:221:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13406,
+ "nodeType": "Block",
+ "src": "5085:352:32",
+ "statements": [
+ {
+ "id": 13405,
+ "nodeType": "UncheckedBlock",
+ "src": "5095:336:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 13364,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13352,
+ "src": "5120:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13365,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13354,
+ "src": "5126:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13366,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13356,
+ "src": "5133:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13367,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "5119:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13369,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13349,
+ "src": "5152:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13370,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "5164:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5152:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13368,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "5140:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5140:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "src": "5119:61:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13374,
+ "nodeType": "ExpressionStatement",
+ "src": "5119:61:32"
+ },
+ {
+ "assignments": [
+ 13376
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13376,
+ "mutability": "mutable",
+ "name": "secs",
+ "nameLocation": "5202:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13405,
+ "src": "5194:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13375,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5194:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13380,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13379,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13377,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13349,
+ "src": "5209:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13378,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "5221:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5209:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5194:42:32"
+ },
+ {
+ "expression": {
+ "id": 13385,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13381,
+ "name": "hour",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13358,
+ "src": "5250:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13382,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13376,
+ "src": "5257:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13383,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "5264:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5257:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5250:30:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13386,
+ "nodeType": "ExpressionStatement",
+ "src": "5250:30:32"
+ },
+ {
+ "expression": {
+ "id": 13391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13387,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13376,
+ "src": "5294:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13390,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13388,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13376,
+ "src": "5301:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13389,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "5308:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5301:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5294:30:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13392,
+ "nodeType": "ExpressionStatement",
+ "src": "5294:30:32"
+ },
+ {
+ "expression": {
+ "id": 13397,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13393,
+ "name": "minute",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13360,
+ "src": "5338:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13394,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13376,
+ "src": "5347:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13395,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "5354:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5347:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5338:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13398,
+ "nodeType": "ExpressionStatement",
+ "src": "5338:34:32"
+ },
+ {
+ "expression": {
+ "id": 13403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13399,
+ "name": "second",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13362,
+ "src": "5386:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13400,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13376,
+ "src": "5395:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13401,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "5402:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5395:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5386:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13404,
+ "nodeType": "ExpressionStatement",
+ "src": "5386:34:32"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 13407,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "timestampToDateTime",
+ "nameLocation": "4907:19:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13350,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13349,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "4935:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "4927:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13348,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4927:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4926:19:32"
+ },
+ "returnParameters": {
+ "id": 13363,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13352,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "5001:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "4993:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13351,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4993:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13354,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "5015:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "5007:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13353,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5007:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13356,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "5030:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "5022:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13355,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5022:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13358,
+ "mutability": "mutable",
+ "name": "hour",
+ "nameLocation": "5043:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "5035:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13357,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5035:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13360,
+ "mutability": "mutable",
+ "name": "minute",
+ "nameLocation": "5057:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "5049:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13359,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5049:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13362,
+ "mutability": "mutable",
+ "name": "second",
+ "nameLocation": "5073:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13407,
+ "src": "5065:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13361,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5065:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4992:88:32"
+ },
+ "scope": 14469,
+ "src": "4898:539:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13451,
+ "nodeType": "Block",
+ "src": "5541:230:32",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13428,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13418,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13409,
+ "src": "5555:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "hexValue": "31393730",
+ "id": 13419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5563:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1970_by_1",
+ "typeString": "int_const 1970"
+ },
+ "value": "1970"
+ },
+ "src": "5555:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13423,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13421,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13411,
+ "src": "5571:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 13422,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5579:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5571:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5555:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13425,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13411,
+ "src": "5584:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13426,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5593:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "5584:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5555:40:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13450,
+ "nodeType": "IfStatement",
+ "src": "5551:214:32",
+ "trueBody": {
+ "id": 13449,
+ "nodeType": "Block",
+ "src": "5597:168:32",
+ "statements": [
+ {
+ "assignments": [
+ 13430
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13430,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "5619:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13449,
+ "src": "5611:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13429,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5611:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13435,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13432,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13409,
+ "src": "5649:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13433,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13411,
+ "src": "5655:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13431,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "5633:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5633:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5611:50:32"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13436,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13413,
+ "src": "5679:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 13437,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5685:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5679:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13441,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13439,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13413,
+ "src": "5690:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 13440,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13430,
+ "src": "5697:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5690:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5679:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13448,
+ "nodeType": "IfStatement",
+ "src": "5675:80:32",
+ "trueBody": {
+ "id": 13447,
+ "nodeType": "Block",
+ "src": "5710:45:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13443,
+ "name": "valid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13416,
+ "src": "5728:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 13444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5736:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "5728:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13446,
+ "nodeType": "ExpressionStatement",
+ "src": "5728:12:32"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 13452,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isValidDate",
+ "nameLocation": "5452:11:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13414,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13409,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "5472:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13452,
+ "src": "5464:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13408,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5464:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13411,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "5486:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13452,
+ "src": "5478:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13410,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5478:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13413,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "5501:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13452,
+ "src": "5493:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13412,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5493:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5463:42:32"
+ },
+ "returnParameters": {
+ "id": 13417,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13416,
+ "mutability": "mutable",
+ "name": "valid",
+ "nameLocation": "5534:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13452,
+ "src": "5529:10:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13415,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5529:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5528:12:32"
+ },
+ "scope": 14469,
+ "src": "5443:328:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13493,
+ "nodeType": "Block",
+ "src": "5953:165:32",
+ "statements": [
+ {
+ "condition": {
+ "arguments": [
+ {
+ "id": 13470,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13454,
+ "src": "5979:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13471,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13456,
+ "src": "5985:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13472,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13458,
+ "src": "5992:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13469,
+ "name": "isValidDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13452,
+ "src": "5967:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (bool)"
+ }
+ },
+ "id": 13473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5967:29:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13492,
+ "nodeType": "IfStatement",
+ "src": "5963:149:32",
+ "trueBody": {
+ "id": 13491,
+ "nodeType": "Block",
+ "src": "5998:114:32",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13480,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13474,
+ "name": "hour",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13460,
+ "src": "6016:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3234",
+ "id": 13475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6023:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_24_by_1",
+ "typeString": "int_const 24"
+ },
+ "value": "24"
+ },
+ "src": "6016:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13477,
+ "name": "minute",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13462,
+ "src": "6029:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3630",
+ "id": 13478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6038:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "src": "6029:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6016:24:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13481,
+ "name": "second",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13464,
+ "src": "6044:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3630",
+ "id": 13482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6053:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_60_by_1",
+ "typeString": "int_const 60"
+ },
+ "value": "60"
+ },
+ "src": "6044:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6016:39:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13490,
+ "nodeType": "IfStatement",
+ "src": "6012:90:32",
+ "trueBody": {
+ "id": 13489,
+ "nodeType": "Block",
+ "src": "6057:45:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13487,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13485,
+ "name": "valid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13467,
+ "src": "6075:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 13486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6083:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "6075:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13488,
+ "nodeType": "ExpressionStatement",
+ "src": "6075:12:32"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 13494,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isValidDateTime",
+ "nameLocation": "5786:15:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13465,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13454,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "5810:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5802:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13453,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5802:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13456,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "5824:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5816:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13455,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5816:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13458,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "5839:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5831:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13457,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5831:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13460,
+ "mutability": "mutable",
+ "name": "hour",
+ "nameLocation": "5852:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5844:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13459,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5844:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13462,
+ "mutability": "mutable",
+ "name": "minute",
+ "nameLocation": "5866:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5858:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13461,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5858:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13464,
+ "mutability": "mutable",
+ "name": "second",
+ "nameLocation": "5882:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5874:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13463,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5874:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5801:88:32"
+ },
+ "returnParameters": {
+ "id": 13468,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13467,
+ "mutability": "mutable",
+ "name": "valid",
+ "nameLocation": "5942:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13494,
+ "src": "5937:10:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13466,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5937:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5936:12:32"
+ },
+ "scope": 14469,
+ "src": "5777:341:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13515,
+ "nodeType": "Block",
+ "src": "6201:114:32",
+ "statements": [
+ {
+ "assignments": [
+ 13502,
+ null,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13502,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "6220:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13515,
+ "src": "6212:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13501,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6212:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null,
+ null
+ ],
+ "id": 13508,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13504,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13496,
+ "src": "6242:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13505,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "6254:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6242:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13503,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "6230:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6230:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6211:59:32"
+ },
+ {
+ "expression": {
+ "id": 13513,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13509,
+ "name": "leapYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13499,
+ "src": "6280:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13511,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13502,
+ "src": "6303:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13510,
+ "name": "_isLeapYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13548,
+ "src": "6291:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256) pure returns (bool)"
+ }
+ },
+ "id": 13512,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6291:17:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6280:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13514,
+ "nodeType": "ExpressionStatement",
+ "src": "6280:28:32"
+ }
+ ]
+ },
+ "id": 13516,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isLeapYear",
+ "nameLocation": "6133:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13497,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13496,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "6152:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13516,
+ "src": "6144:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13495,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6144:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6143:19:32"
+ },
+ "returnParameters": {
+ "id": 13500,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13499,
+ "mutability": "mutable",
+ "name": "leapYear",
+ "nameLocation": "6191:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13516,
+ "src": "6186:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13498,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6186:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6185:15:32"
+ },
+ "scope": 14469,
+ "src": "6124:191:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13547,
+ "nodeType": "Block",
+ "src": "6394:87:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13545,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13523,
+ "name": "leapYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13521,
+ "src": "6404:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13536,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13528,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13526,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13524,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13518,
+ "src": "6417:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 13525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6424:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "6417:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 13527,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6429:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "6417:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 13529,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6416:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13532,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13530,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13518,
+ "src": "6436:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "313030",
+ "id": 13531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6443:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "src": "6436:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 13533,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6450:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "6436:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 13535,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6435:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6416:36:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 13537,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6415:38:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13540,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13538,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13518,
+ "src": "6458:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "343030",
+ "id": 13539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6465:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_400_by_1",
+ "typeString": "int_const 400"
+ },
+ "value": "400"
+ },
+ "src": "6458:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 13541,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6472:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "6458:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "id": 13543,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "6457:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6415:59:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6404:70:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13546,
+ "nodeType": "ExpressionStatement",
+ "src": "6404:70:32"
+ }
+ ]
+ },
+ "id": 13548,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_isLeapYear",
+ "nameLocation": "6330:11:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13519,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13518,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "6350:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13548,
+ "src": "6342:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13517,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6342:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6341:14:32"
+ },
+ "returnParameters": {
+ "id": 13522,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13521,
+ "mutability": "mutable",
+ "name": "leapYear",
+ "nameLocation": "6384:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13548,
+ "src": "6379:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13520,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6379:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6378:15:32"
+ },
+ "scope": 14469,
+ "src": "6321:160:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13563,
+ "nodeType": "Block",
+ "src": "6562:61:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13561,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13555,
+ "name": "weekDay",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13553,
+ "src": "6572:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13560,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13557,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13550,
+ "src": "6595:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13556,
+ "name": "getDayOfWeek",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13693,
+ "src": "6582:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13558,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6582:23:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 13559,
+ "name": "DOW_FRI",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13001,
+ "src": "6609:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6582:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6572:44:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13562,
+ "nodeType": "ExpressionStatement",
+ "src": "6572:44:32"
+ }
+ ]
+ },
+ "id": 13564,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isWeekDay",
+ "nameLocation": "6496:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13551,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13550,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "6514:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13564,
+ "src": "6506:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13549,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6506:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6505:19:32"
+ },
+ "returnParameters": {
+ "id": 13554,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13553,
+ "mutability": "mutable",
+ "name": "weekDay",
+ "nameLocation": "6553:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13564,
+ "src": "6548:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13552,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6548:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6547:14:32"
+ },
+ "scope": 14469,
+ "src": "6487:136:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13579,
+ "nodeType": "Block",
+ "src": "6704:61:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13571,
+ "name": "weekEnd",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13569,
+ "src": "6714:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13573,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13566,
+ "src": "6737:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13572,
+ "name": "getDayOfWeek",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13693,
+ "src": "6724:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6724:23:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 13575,
+ "name": "DOW_SAT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13004,
+ "src": "6751:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6724:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "6714:44:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13578,
+ "nodeType": "ExpressionStatement",
+ "src": "6714:44:32"
+ }
+ ]
+ },
+ "id": 13580,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isWeekEnd",
+ "nameLocation": "6638:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13567,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13566,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "6656:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13580,
+ "src": "6648:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13565,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6648:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6647:19:32"
+ },
+ "returnParameters": {
+ "id": 13570,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13569,
+ "mutability": "mutable",
+ "name": "weekEnd",
+ "nameLocation": "6695:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13580,
+ "src": "6690:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 13568,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6690:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6689:14:32"
+ },
+ "scope": 14469,
+ "src": "6629:136:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13604,
+ "nodeType": "Block",
+ "src": "6858:142:32",
+ "statements": [
+ {
+ "assignments": [
+ 13588,
+ 13590,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13588,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "6877:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13604,
+ "src": "6869:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13587,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6869:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13590,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "6891:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13604,
+ "src": "6883:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13589,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6883:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 13596,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13592,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13582,
+ "src": "6913:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13593,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "6925:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6913:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13591,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "6901:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6901:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6868:73:32"
+ },
+ {
+ "expression": {
+ "id": 13602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13597,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13585,
+ "src": "6951:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 13599,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13588,
+ "src": "6981:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13600,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13590,
+ "src": "6987:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13598,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "6965:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6965:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6951:42:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13603,
+ "nodeType": "ExpressionStatement",
+ "src": "6951:42:32"
+ }
+ ]
+ },
+ "id": 13605,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getDaysInMonth",
+ "nameLocation": "6780:14:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13583,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13582,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "6803:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13605,
+ "src": "6795:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13581,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6795:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6794:19:32"
+ },
+ "returnParameters": {
+ "id": 13586,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13585,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "6845:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13605,
+ "src": "6837:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13584,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6837:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6836:21:32"
+ },
+ "scope": 14469,
+ "src": "6771:229:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13666,
+ "nodeType": "Block",
+ "src": "7104:294:32",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13636,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13632,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 13620,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13614,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7118:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13615,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7127:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "7118:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13619,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13617,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7132:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 13618,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7141:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "7132:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:24:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13621,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7146:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "35",
+ "id": 13622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7155:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "src": "7146:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:38:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13627,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13625,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7160:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "37",
+ "id": 13626,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7169:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "src": "7160:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:52:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13631,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13629,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7174:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 13630,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7183:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "7174:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:66:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13635,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13633,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7188:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "3130",
+ "id": 13634,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7197:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "src": "7188:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:81:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13639,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13637,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7203:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7212:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "7203:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "7118:96:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13648,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13646,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13609,
+ "src": "7267:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 13647,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7276:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "7267:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 13663,
+ "nodeType": "Block",
+ "src": "7326:66:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13654,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13612,
+ "src": "7340:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "arguments": [
+ {
+ "id": 13656,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13607,
+ "src": "7366:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13655,
+ "name": "_isLeapYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13548,
+ "src": "7354:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (uint256) pure returns (bool)"
+ }
+ },
+ "id": 13657,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7354:17:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "hexValue": "3238",
+ "id": 13659,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7379:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_28_by_1",
+ "typeString": "int_const 28"
+ },
+ "value": "28"
+ },
+ "id": 13660,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "7354:27:32",
+ "trueExpression": {
+ "hexValue": "3239",
+ "id": 13658,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7374:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_29_by_1",
+ "typeString": "int_const 29"
+ },
+ "value": "29"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "src": "7340:41:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13662,
+ "nodeType": "ExpressionStatement",
+ "src": "7340:41:32"
+ }
+ ]
+ },
+ "id": 13664,
+ "nodeType": "IfStatement",
+ "src": "7263:129:32",
+ "trueBody": {
+ "id": 13653,
+ "nodeType": "Block",
+ "src": "7279:41:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13651,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13649,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13612,
+ "src": "7293:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3330",
+ "id": 13650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7307:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_30_by_1",
+ "typeString": "int_const 30"
+ },
+ "value": "30"
+ },
+ "src": "7293:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13652,
+ "nodeType": "ExpressionStatement",
+ "src": "7293:16:32"
+ }
+ ]
+ }
+ },
+ "id": 13665,
+ "nodeType": "IfStatement",
+ "src": "7114:278:32",
+ "trueBody": {
+ "id": 13645,
+ "nodeType": "Block",
+ "src": "7216:41:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13641,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13612,
+ "src": "7230:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3331",
+ "id": 13642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7244:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_31_by_1",
+ "typeString": "int_const 31"
+ },
+ "value": "31"
+ },
+ "src": "7230:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13644,
+ "nodeType": "ExpressionStatement",
+ "src": "7230:16:32"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 13667,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getDaysInMonth",
+ "nameLocation": "7015:15:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13610,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13607,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "7039:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13667,
+ "src": "7031:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13606,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7031:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13609,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "7053:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13667,
+ "src": "7045:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7045:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7030:29:32"
+ },
+ "returnParameters": {
+ "id": 13613,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13612,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "7091:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13667,
+ "src": "7083:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13611,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7083:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7082:21:32"
+ },
+ "scope": 14469,
+ "src": "7006:392:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13692,
+ "nodeType": "Block",
+ "src": "7517:103:32",
+ "statements": [
+ {
+ "assignments": [
+ 13675
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13675,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "7535:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13692,
+ "src": "7527:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13674,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7527:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13679,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13678,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13676,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13669,
+ "src": "7543:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13677,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "7555:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7543:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7527:43:32"
+ },
+ {
+ "expression": {
+ "id": 13690,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13680,
+ "name": "dayOfWeek",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13672,
+ "src": "7580:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13686,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13683,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13681,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13675,
+ "src": "7594:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 13682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7602:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "7594:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13684,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "7593:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "37",
+ "id": 13685,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7607:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "src": "7593:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13687,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "7592:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13688,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7612:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "7592:21:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7580:33:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13691,
+ "nodeType": "ExpressionStatement",
+ "src": "7580:33:32"
+ }
+ ]
+ },
+ "id": 13693,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getDayOfWeek",
+ "nameLocation": "7443:12:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13670,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13669,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "7464:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13693,
+ "src": "7456:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13668,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7456:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7455:19:32"
+ },
+ "returnParameters": {
+ "id": 13673,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13672,
+ "mutability": "mutable",
+ "name": "dayOfWeek",
+ "nameLocation": "7506:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13693,
+ "src": "7498:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13671,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7498:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7497:19:32"
+ },
+ "scope": 14469,
+ "src": "7434:186:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13709,
+ "nodeType": "Block",
+ "src": "7699:68:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 13700,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13698,
+ "src": "7710:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ null,
+ null
+ ],
+ "id": 13701,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "7709:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$__$__$",
+ "typeString": "tuple(uint256,,)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13705,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13703,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13695,
+ "src": "7732:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13704,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "7744:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7732:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13702,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "7720:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13706,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7720:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "src": "7709:51:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13708,
+ "nodeType": "ExpressionStatement",
+ "src": "7709:51:32"
+ }
+ ]
+ },
+ "id": 13710,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getYear",
+ "nameLocation": "7635:7:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13696,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13695,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "7651:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13710,
+ "src": "7643:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13694,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7643:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7642:19:32"
+ },
+ "returnParameters": {
+ "id": 13699,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13698,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "7693:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13710,
+ "src": "7685:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13697,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7685:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7684:14:32"
+ },
+ "scope": 14469,
+ "src": "7626:141:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13726,
+ "nodeType": "Block",
+ "src": "7848:70:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13724,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ null,
+ {
+ "id": 13717,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13715,
+ "src": "7861:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ null
+ ],
+ "id": 13718,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "7858:10:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$_t_uint256_$__$",
+ "typeString": "tuple(,uint256,)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13720,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13712,
+ "src": "7883:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13721,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "7895:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7883:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13719,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "7871:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7871:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "src": "7858:53:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13725,
+ "nodeType": "ExpressionStatement",
+ "src": "7858:53:32"
+ }
+ ]
+ },
+ "id": 13727,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getMonth",
+ "nameLocation": "7782:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13713,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13712,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "7799:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13727,
+ "src": "7791:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13711,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7791:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7790:19:32"
+ },
+ "returnParameters": {
+ "id": 13716,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13715,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "7841:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13727,
+ "src": "7833:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13714,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7833:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7832:15:32"
+ },
+ "scope": 14469,
+ "src": "7773:145:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13743,
+ "nodeType": "Block",
+ "src": "7995:68:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ null,
+ null,
+ {
+ "id": 13734,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13732,
+ "src": "8009:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13735,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "8005:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$__$_t_uint256_$",
+ "typeString": "tuple(,,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13737,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13729,
+ "src": "8028:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13738,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "8040:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8028:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13736,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "8016:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8016:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "src": "8005:51:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13742,
+ "nodeType": "ExpressionStatement",
+ "src": "8005:51:32"
+ }
+ ]
+ },
+ "id": 13744,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getDay",
+ "nameLocation": "7933:6:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13730,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13729,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "7948:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13744,
+ "src": "7940:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13728,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7940:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7939:19:32"
+ },
+ "returnParameters": {
+ "id": 13733,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13732,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "7990:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13744,
+ "src": "7982:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13731,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7982:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7981:13:32"
+ },
+ "scope": 14469,
+ "src": "7924:139:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13763,
+ "nodeType": "Block",
+ "src": "8142:99:32",
+ "statements": [
+ {
+ "assignments": [
+ 13752
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13752,
+ "mutability": "mutable",
+ "name": "secs",
+ "nameLocation": "8160:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13763,
+ "src": "8152:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13751,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8152:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13756,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13753,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13746,
+ "src": "8167:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13754,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "8179:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8167:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8152:42:32"
+ },
+ {
+ "expression": {
+ "id": 13761,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13757,
+ "name": "hour",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13749,
+ "src": "8204:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13760,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13758,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13752,
+ "src": "8211:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13759,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "8218:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8211:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8204:30:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13762,
+ "nodeType": "ExpressionStatement",
+ "src": "8204:30:32"
+ }
+ ]
+ },
+ "id": 13764,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getHour",
+ "nameLocation": "8078:7:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13747,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13746,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "8094:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13764,
+ "src": "8086:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13745,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8086:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8085:19:32"
+ },
+ "returnParameters": {
+ "id": 13750,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13749,
+ "mutability": "mutable",
+ "name": "hour",
+ "nameLocation": "8136:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13764,
+ "src": "8128:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13748,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8128:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8127:14:32"
+ },
+ "scope": 14469,
+ "src": "8069:172:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13783,
+ "nodeType": "Block",
+ "src": "8324:104:32",
+ "statements": [
+ {
+ "assignments": [
+ 13772
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13772,
+ "mutability": "mutable",
+ "name": "secs",
+ "nameLocation": "8342:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13783,
+ "src": "8334:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13771,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8334:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13776,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13773,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13766,
+ "src": "8349:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13774,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "8361:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8349:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8334:43:32"
+ },
+ {
+ "expression": {
+ "id": 13781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13777,
+ "name": "minute",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13769,
+ "src": "8387:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13780,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13778,
+ "name": "secs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13772,
+ "src": "8396:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13779,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "8403:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8396:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8387:34:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13782,
+ "nodeType": "ExpressionStatement",
+ "src": "8387:34:32"
+ }
+ ]
+ },
+ "id": 13784,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getMinute",
+ "nameLocation": "8256:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13767,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13766,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "8274:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13784,
+ "src": "8266:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13765,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8266:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8265:19:32"
+ },
+ "returnParameters": {
+ "id": 13770,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13769,
+ "mutability": "mutable",
+ "name": "minute",
+ "nameLocation": "8316:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13784,
+ "src": "8308:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13768,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8308:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8307:16:32"
+ },
+ "scope": 14469,
+ "src": "8247:181:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13797,
+ "nodeType": "Block",
+ "src": "8511:56:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13791,
+ "name": "second",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13789,
+ "src": "8521:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13792,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13786,
+ "src": "8530:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13793,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "8542:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8530:30:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8521:39:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13796,
+ "nodeType": "ExpressionStatement",
+ "src": "8521:39:32"
+ }
+ ]
+ },
+ "id": 13798,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getSecond",
+ "nameLocation": "8443:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13787,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13786,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "8461:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13798,
+ "src": "8453:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13785,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8453:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8452:19:32"
+ },
+ "returnParameters": {
+ "id": 13790,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13789,
+ "mutability": "mutable",
+ "name": "second",
+ "nameLocation": "8503:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13798,
+ "src": "8495:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13788,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8495:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8494:16:32"
+ },
+ "scope": 14469,
+ "src": "8434:133:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13860,
+ "nodeType": "Block",
+ "src": "8671:410:32",
+ "statements": [
+ {
+ "assignments": [
+ 13808,
+ 13810,
+ 13812
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13808,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "8690:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13860,
+ "src": "8682:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13807,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8682:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13810,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "8704:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13860,
+ "src": "8696:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13809,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8696:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13812,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "8719:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13860,
+ "src": "8711:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13811,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8711:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13818,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13816,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13814,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13800,
+ "src": "8738:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13815,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "8750:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8738:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13813,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "8726:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13817,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8726:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8681:85:32"
+ },
+ {
+ "expression": {
+ "id": 13821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13819,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13808,
+ "src": "8776:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 13820,
+ "name": "_years",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13802,
+ "src": "8784:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8776:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13822,
+ "nodeType": "ExpressionStatement",
+ "src": "8776:14:32"
+ },
+ {
+ "assignments": [
+ 13824
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13824,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "8808:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13860,
+ "src": "8800:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13823,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8800:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13829,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13826,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13808,
+ "src": "8838:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13827,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13810,
+ "src": "8844:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13825,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "8822:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8822:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8800:50:32"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13830,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13812,
+ "src": "8864:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 13831,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13824,
+ "src": "8870:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8864:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13838,
+ "nodeType": "IfStatement",
+ "src": "8860:65:32",
+ "trueBody": {
+ "id": 13837,
+ "nodeType": "Block",
+ "src": "8883:42:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13833,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13812,
+ "src": "8897:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 13834,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13824,
+ "src": "8903:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8897:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13836,
+ "nodeType": "ExpressionStatement",
+ "src": "8897:17:32"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 13852,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13839,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13805,
+ "src": "8934:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13841,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13808,
+ "src": "8963:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13842,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13810,
+ "src": "8969:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13843,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13812,
+ "src": "8976:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13840,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "8949:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8949:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13845,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "8983:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8949:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13849,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13847,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13800,
+ "src": "9002:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13848,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "9014:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9002:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13850,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9001:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8949:81:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "8934:96:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13853,
+ "nodeType": "ExpressionStatement",
+ "src": "8934:96:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13857,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13855,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13805,
+ "src": "9048:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 13856,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13800,
+ "src": "9064:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9048:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 13854,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9040:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 13858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9040:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13859,
+ "nodeType": "ExpressionStatement",
+ "src": "9040:34:32"
+ }
+ ]
+ },
+ "id": 13861,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addYears",
+ "nameLocation": "8582:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13803,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13800,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "8599:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13861,
+ "src": "8591:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13799,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8591:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13802,
+ "mutability": "mutable",
+ "name": "_years",
+ "nameLocation": "8618:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13861,
+ "src": "8610:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13801,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8610:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8590:35:32"
+ },
+ "returnParameters": {
+ "id": 13806,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13805,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "8657:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13861,
+ "src": "8649:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13804,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8649:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8648:22:32"
+ },
+ "scope": 14469,
+ "src": "8573:508:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13944,
+ "nodeType": "Block",
+ "src": "9187:486:32",
+ "statements": [
+ {
+ "assignments": [
+ 13871,
+ 13873,
+ 13875
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13871,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "9206:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13944,
+ "src": "9198:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13870,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9198:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13873,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "9220:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13944,
+ "src": "9212:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13872,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9212:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13875,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "9235:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13944,
+ "src": "9227:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13874,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9227:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13881,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13877,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13863,
+ "src": "9254:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 13878,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "9266:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9254:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13876,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "9242:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 13880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9242:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9197:85:32"
+ },
+ {
+ "expression": {
+ "id": 13884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13882,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9292:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 13883,
+ "name": "_months",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13865,
+ "src": "9301:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9292:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13885,
+ "nodeType": "ExpressionStatement",
+ "src": "9292:16:32"
+ },
+ {
+ "expression": {
+ "id": 13893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13886,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13871,
+ "src": "9318:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13887,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9327:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9335:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "9327:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13890,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9326:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9340:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "9326:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9318:24:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13894,
+ "nodeType": "ExpressionStatement",
+ "src": "9318:24:32"
+ },
+ {
+ "expression": {
+ "id": 13905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13895,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9352:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13904,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13896,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9362:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9370:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "9362:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13899,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9361:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 13900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9375:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "9361:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13902,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9360:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 13903,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9381:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "9360:22:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9352:30:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13906,
+ "nodeType": "ExpressionStatement",
+ "src": "9352:30:32"
+ },
+ {
+ "assignments": [
+ 13908
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 13908,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "9400:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13944,
+ "src": "9392:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13907,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9392:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 13913,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 13910,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13871,
+ "src": "9430:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13911,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9436:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13909,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "9414:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9414:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9392:50:32"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13914,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13875,
+ "src": "9456:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 13915,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13908,
+ "src": "9462:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9456:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 13922,
+ "nodeType": "IfStatement",
+ "src": "9452:65:32",
+ "trueBody": {
+ "id": 13921,
+ "nodeType": "Block",
+ "src": "9475:42:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13917,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13875,
+ "src": "9489:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 13918,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13908,
+ "src": "9495:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9489:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13920,
+ "nodeType": "ExpressionStatement",
+ "src": "9489:17:32"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 13936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13923,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13868,
+ "src": "9526:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13930,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 13925,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13871,
+ "src": "9555:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13926,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13873,
+ "src": "9561:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 13927,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13875,
+ "src": "9568:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 13924,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "9541:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 13928,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9541:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13929,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "9575:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9541:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13931,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13863,
+ "src": "9594:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 13932,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "9606:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9594:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 13934,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9593:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9541:81:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9526:96:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13937,
+ "nodeType": "ExpressionStatement",
+ "src": "9526:96:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13941,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13939,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13868,
+ "src": "9640:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 13940,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13863,
+ "src": "9656:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9640:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 13938,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9632:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 13942,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9632:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13943,
+ "nodeType": "ExpressionStatement",
+ "src": "9632:34:32"
+ }
+ ]
+ },
+ "id": 13945,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addMonths",
+ "nameLocation": "9096:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13866,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13863,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "9114:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13945,
+ "src": "9106:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13862,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9106:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13865,
+ "mutability": "mutable",
+ "name": "_months",
+ "nameLocation": "9133:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13945,
+ "src": "9125:15:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13864,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9125:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9105:36:32"
+ },
+ "returnParameters": {
+ "id": 13869,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13868,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "9173:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13945,
+ "src": "9165:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13867,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9165:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9164:22:32"
+ },
+ "scope": 14469,
+ "src": "9087:586:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13968,
+ "nodeType": "Block",
+ "src": "9775:111:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13960,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13954,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13952,
+ "src": "9785:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13955,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13947,
+ "src": "9800:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13958,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13956,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13949,
+ "src": "9812:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13957,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "9820:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9812:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9800:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9785:50:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13961,
+ "nodeType": "ExpressionStatement",
+ "src": "9785:50:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13963,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13952,
+ "src": "9853:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 13964,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13947,
+ "src": "9869:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9853:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 13962,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9845:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 13966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9845:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13967,
+ "nodeType": "ExpressionStatement",
+ "src": "9845:34:32"
+ }
+ ]
+ },
+ "id": 13969,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addDays",
+ "nameLocation": "9688:7:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13950,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13947,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "9704:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13969,
+ "src": "9696:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13946,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9696:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13949,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "9723:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13969,
+ "src": "9715:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13948,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9715:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9695:34:32"
+ },
+ "returnParameters": {
+ "id": 13953,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13952,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "9761:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13969,
+ "src": "9753:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13951,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9753:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9752:22:32"
+ },
+ "scope": 14469,
+ "src": "9679:207:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 13992,
+ "nodeType": "Block",
+ "src": "9990:113:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 13984,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 13978,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13976,
+ "src": "10000:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13979,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13971,
+ "src": "10015:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13980,
+ "name": "_hours",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13973,
+ "src": "10027:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 13981,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "10036:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10027:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10015:37:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10000:52:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 13985,
+ "nodeType": "ExpressionStatement",
+ "src": "10000:52:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 13989,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 13987,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13976,
+ "src": "10070:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 13988,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13971,
+ "src": "10086:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10070:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 13986,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "10062:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 13990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10062:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 13991,
+ "nodeType": "ExpressionStatement",
+ "src": "10062:34:32"
+ }
+ ]
+ },
+ "id": 13993,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addHours",
+ "nameLocation": "9901:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13974,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13971,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "9918:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13993,
+ "src": "9910:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13970,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9910:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13973,
+ "mutability": "mutable",
+ "name": "_hours",
+ "nameLocation": "9937:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13993,
+ "src": "9929:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13972,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9929:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9909:35:32"
+ },
+ "returnParameters": {
+ "id": 13977,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13976,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "9976:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 13993,
+ "src": "9968:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13975,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9968:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9967:22:32"
+ },
+ "scope": 14469,
+ "src": "9892:211:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14016,
+ "nodeType": "Block",
+ "src": "10211:117:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14008,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14002,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14000,
+ "src": "10221:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14007,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14003,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13995,
+ "src": "10236:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14004,
+ "name": "_minutes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13997,
+ "src": "10248:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14005,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "10259:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10248:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10236:41:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10221:56:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14009,
+ "nodeType": "ExpressionStatement",
+ "src": "10221:56:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14013,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14011,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14000,
+ "src": "10295:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 14012,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13995,
+ "src": "10311:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10295:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14010,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "10287:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14014,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10287:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14015,
+ "nodeType": "ExpressionStatement",
+ "src": "10287:34:32"
+ }
+ ]
+ },
+ "id": 14017,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addMinutes",
+ "nameLocation": "10118:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 13998,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 13995,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "10137:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14017,
+ "src": "10129:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13994,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10129:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 13997,
+ "mutability": "mutable",
+ "name": "_minutes",
+ "nameLocation": "10156:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14017,
+ "src": "10148:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13996,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10148:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10128:37:32"
+ },
+ "returnParameters": {
+ "id": 14001,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14000,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "10197:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14017,
+ "src": "10189:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 13999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10189:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10188:22:32"
+ },
+ "scope": 14469,
+ "src": "10109:219:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14038,
+ "nodeType": "Block",
+ "src": "10436:96:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14030,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14026,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14024,
+ "src": "10446:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14029,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14027,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14019,
+ "src": "10461:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 14028,
+ "name": "_seconds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14021,
+ "src": "10473:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10461:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10446:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14031,
+ "nodeType": "ExpressionStatement",
+ "src": "10446:35:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14035,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14033,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14024,
+ "src": "10499:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 14034,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14019,
+ "src": "10515:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10499:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14032,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "10491:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10491:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14037,
+ "nodeType": "ExpressionStatement",
+ "src": "10491:34:32"
+ }
+ ]
+ },
+ "id": 14039,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addSeconds",
+ "nameLocation": "10343:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14022,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14019,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "10362:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14039,
+ "src": "10354:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14018,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10354:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14021,
+ "mutability": "mutable",
+ "name": "_seconds",
+ "nameLocation": "10381:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14039,
+ "src": "10373:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14020,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10373:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10353:37:32"
+ },
+ "returnParameters": {
+ "id": 14025,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14024,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "10422:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14039,
+ "src": "10414:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14023,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10414:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10413:22:32"
+ },
+ "scope": 14469,
+ "src": "10334:198:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14101,
+ "nodeType": "Block",
+ "src": "10636:410:32",
+ "statements": [
+ {
+ "assignments": [
+ 14049,
+ 14051,
+ 14053
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14049,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "10655:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14101,
+ "src": "10647:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14048,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10647:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14051,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "10669:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14101,
+ "src": "10661:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14050,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10661:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14053,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "10684:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14101,
+ "src": "10676:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14052,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10676:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14059,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14055,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14041,
+ "src": "10703:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14056,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "10715:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10703:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14054,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "10691:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14058,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10691:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10646:85:32"
+ },
+ {
+ "expression": {
+ "id": 14062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14060,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14049,
+ "src": "10741:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "id": 14061,
+ "name": "_years",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14043,
+ "src": "10749:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10741:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14063,
+ "nodeType": "ExpressionStatement",
+ "src": "10741:14:32"
+ },
+ {
+ "assignments": [
+ 14065
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14065,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "10773:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14101,
+ "src": "10765:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14064,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10765:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14070,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 14067,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14049,
+ "src": "10803:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14068,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14051,
+ "src": "10809:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14066,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "10787:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 14069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10787:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10765:50:32"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14071,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14053,
+ "src": "10829:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 14072,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14065,
+ "src": "10835:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10829:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 14079,
+ "nodeType": "IfStatement",
+ "src": "10825:65:32",
+ "trueBody": {
+ "id": 14078,
+ "nodeType": "Block",
+ "src": "10848:42:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14074,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14053,
+ "src": "10862:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14075,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14065,
+ "src": "10868:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10862:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14077,
+ "nodeType": "ExpressionStatement",
+ "src": "10862:17:32"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 14093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14080,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14046,
+ "src": "10899:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14087,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 14082,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14049,
+ "src": "10928:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14083,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14051,
+ "src": "10934:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14084,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14053,
+ "src": "10941:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14081,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "10914:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 14085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10914:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14086,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "10948:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10914:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14088,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14041,
+ "src": "10967:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 14089,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "10979:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10967:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14091,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "10966:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10914:81:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10899:96:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14094,
+ "nodeType": "ExpressionStatement",
+ "src": "10899:96:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14096,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14046,
+ "src": "11013:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14097,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14041,
+ "src": "11029:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11013:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14095,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "11005:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11005:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14100,
+ "nodeType": "ExpressionStatement",
+ "src": "11005:34:32"
+ }
+ ]
+ },
+ "id": 14102,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subYears",
+ "nameLocation": "10547:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14044,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14041,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "10564:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14102,
+ "src": "10556:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14040,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10556:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14043,
+ "mutability": "mutable",
+ "name": "_years",
+ "nameLocation": "10583:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14102,
+ "src": "10575:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14042,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10575:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10555:35:32"
+ },
+ "returnParameters": {
+ "id": 14047,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14046,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "10622:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14102,
+ "src": "10614:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14045,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10614:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10613:22:32"
+ },
+ "scope": 14469,
+ "src": "10538:508:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14188,
+ "nodeType": "Block",
+ "src": "11152:518:32",
+ "statements": [
+ {
+ "assignments": [
+ 14112,
+ 14114,
+ 14116
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14112,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "11171:4:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14188,
+ "src": "11163:12:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14111,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11163:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14114,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "11185:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14188,
+ "src": "11177:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14113,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11177:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14116,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "11200:3:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14188,
+ "src": "11192:11:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14115,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11192:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14122,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14118,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14104,
+ "src": "11219:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14119,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "11231:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11219:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14117,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "11207:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11207:40:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11162:85:32"
+ },
+ {
+ "assignments": [
+ 14124
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14124,
+ "mutability": "mutable",
+ "name": "yearMonth",
+ "nameLocation": "11265:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14188,
+ "src": "11257:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14123,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11257:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14135,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14132,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14125,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14112,
+ "src": "11277:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 14126,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11284:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "11277:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14128,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14114,
+ "src": "11290:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 14129,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11298:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "11290:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14131,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11289:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11277:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14133,
+ "name": "_months",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14106,
+ "src": "11303:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11277:33:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11257:53:32"
+ },
+ {
+ "expression": {
+ "id": 14140,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14136,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14112,
+ "src": "11320:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14137,
+ "name": "yearMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14124,
+ "src": "11327:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 14138,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11339:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "11327:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11320:21:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14141,
+ "nodeType": "ExpressionStatement",
+ "src": "11320:21:32"
+ },
+ {
+ "expression": {
+ "id": 14149,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14142,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14114,
+ "src": "11351:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14143,
+ "name": "yearMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14124,
+ "src": "11360:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 14144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11372:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "11360:14:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14146,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11359:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 14147,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11378:1:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "11359:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11351:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14150,
+ "nodeType": "ExpressionStatement",
+ "src": "11351:28:32"
+ },
+ {
+ "assignments": [
+ 14152
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14152,
+ "mutability": "mutable",
+ "name": "daysInMonth",
+ "nameLocation": "11397:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14188,
+ "src": "11389:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11389:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14157,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 14154,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14112,
+ "src": "11427:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14155,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14114,
+ "src": "11433:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14153,
+ "name": "_getDaysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13667,
+ "src": "11411:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 14156,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11411:28:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11389:50:32"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14158,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14116,
+ "src": "11453:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 14159,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14152,
+ "src": "11459:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11453:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 14166,
+ "nodeType": "IfStatement",
+ "src": "11449:65:32",
+ "trueBody": {
+ "id": 14165,
+ "nodeType": "Block",
+ "src": "11472:42:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14161,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14116,
+ "src": "11486:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14162,
+ "name": "daysInMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14152,
+ "src": "11492:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11486:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14164,
+ "nodeType": "ExpressionStatement",
+ "src": "11486:17:32"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 14180,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14167,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14109,
+ "src": "11523:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14179,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "id": 14169,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14112,
+ "src": "11552:4:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14170,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14114,
+ "src": "11558:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 14171,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14116,
+ "src": "11565:3:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14168,
+ "name": "_daysFromDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13118,
+ "src": "11538:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 14172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11538:31:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14173,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "11572:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11538:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14177,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14175,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14104,
+ "src": "11591:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "%",
+ "rightExpression": {
+ "id": 14176,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "11603:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11591:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14178,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "11590:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11538:81:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11523:96:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14181,
+ "nodeType": "ExpressionStatement",
+ "src": "11523:96:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14183,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14109,
+ "src": "11637:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14184,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14104,
+ "src": "11653:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11637:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14182,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "11629:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14186,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11629:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14187,
+ "nodeType": "ExpressionStatement",
+ "src": "11629:34:32"
+ }
+ ]
+ },
+ "id": 14189,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subMonths",
+ "nameLocation": "11061:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14107,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14104,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "11079:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14189,
+ "src": "11071:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14103,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11071:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14106,
+ "mutability": "mutable",
+ "name": "_months",
+ "nameLocation": "11098:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14189,
+ "src": "11090:15:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14105,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11090:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11070:36:32"
+ },
+ "returnParameters": {
+ "id": 14110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14109,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "11138:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14189,
+ "src": "11130:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14108,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11130:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11129:22:32"
+ },
+ "scope": 14469,
+ "src": "11052:618:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14212,
+ "nodeType": "Block",
+ "src": "11772:111:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14198,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14196,
+ "src": "11782:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14203,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14199,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14191,
+ "src": "11797:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14202,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14200,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14193,
+ "src": "11809:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14201,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "11817:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11809:23:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11797:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11782:50:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14205,
+ "nodeType": "ExpressionStatement",
+ "src": "11782:50:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14209,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14207,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14196,
+ "src": "11850:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14208,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14191,
+ "src": "11866:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11850:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14206,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "11842:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11842:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14211,
+ "nodeType": "ExpressionStatement",
+ "src": "11842:34:32"
+ }
+ ]
+ },
+ "id": 14213,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subDays",
+ "nameLocation": "11685:7:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14194,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14191,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "11701:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14213,
+ "src": "11693:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14190,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11693:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14193,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "11720:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14213,
+ "src": "11712:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14192,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11712:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11692:34:32"
+ },
+ "returnParameters": {
+ "id": 14197,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14196,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "11758:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14213,
+ "src": "11750:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14195,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11750:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11749:22:32"
+ },
+ "scope": 14469,
+ "src": "11676:207:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14236,
+ "nodeType": "Block",
+ "src": "11987:113:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14222,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14220,
+ "src": "11997:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14223,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14215,
+ "src": "12012:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14224,
+ "name": "_hours",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14217,
+ "src": "12024:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14225,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "12033:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12024:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12012:37:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "11997:52:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14229,
+ "nodeType": "ExpressionStatement",
+ "src": "11997:52:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14233,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14231,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14220,
+ "src": "12067:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14232,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14215,
+ "src": "12083:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12067:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14230,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12059:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12059:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14235,
+ "nodeType": "ExpressionStatement",
+ "src": "12059:34:32"
+ }
+ ]
+ },
+ "id": 14237,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subHours",
+ "nameLocation": "11898:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14218,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14215,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "11915:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14237,
+ "src": "11907:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14214,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11907:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14217,
+ "mutability": "mutable",
+ "name": "_hours",
+ "nameLocation": "11934:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14237,
+ "src": "11926:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14216,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11926:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11906:35:32"
+ },
+ "returnParameters": {
+ "id": 14221,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14220,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "11973:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14237,
+ "src": "11965:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14219,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11965:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11964:22:32"
+ },
+ "scope": 14469,
+ "src": "11889:211:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14260,
+ "nodeType": "Block",
+ "src": "12208:117:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14246,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14244,
+ "src": "12218:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14247,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14239,
+ "src": "12233:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14248,
+ "name": "_minutes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14241,
+ "src": "12245:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 14249,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "12256:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12245:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12233:41:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12218:56:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14253,
+ "nodeType": "ExpressionStatement",
+ "src": "12218:56:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14255,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14244,
+ "src": "12292:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14256,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14239,
+ "src": "12308:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12292:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14254,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12284:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12284:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14259,
+ "nodeType": "ExpressionStatement",
+ "src": "12284:34:32"
+ }
+ ]
+ },
+ "id": 14261,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subMinutes",
+ "nameLocation": "12115:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14242,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14239,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "12134:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14261,
+ "src": "12126:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14238,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12126:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14241,
+ "mutability": "mutable",
+ "name": "_minutes",
+ "nameLocation": "12153:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14261,
+ "src": "12145:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14240,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12145:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12125:37:32"
+ },
+ "returnParameters": {
+ "id": 14245,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14244,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "12194:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14261,
+ "src": "12186:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14243,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12186:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12185:22:32"
+ },
+ "scope": 14469,
+ "src": "12106:219:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14282,
+ "nodeType": "Block",
+ "src": "12433:96:32",
+ "statements": [
+ {
+ "expression": {
+ "id": 14274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14270,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14268,
+ "src": "12443:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14271,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14263,
+ "src": "12458:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14272,
+ "name": "_seconds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14265,
+ "src": "12470:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12458:20:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12443:35:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14275,
+ "nodeType": "ExpressionStatement",
+ "src": "12443:35:32"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14277,
+ "name": "newTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14268,
+ "src": "12496:12:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14278,
+ "name": "timestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14263,
+ "src": "12512:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12496:25:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14276,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12488:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12488:34:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14281,
+ "nodeType": "ExpressionStatement",
+ "src": "12488:34:32"
+ }
+ ]
+ },
+ "id": 14283,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "subSeconds",
+ "nameLocation": "12340:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14266,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14263,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "12359:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14283,
+ "src": "12351:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14262,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12351:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14265,
+ "mutability": "mutable",
+ "name": "_seconds",
+ "nameLocation": "12378:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14283,
+ "src": "12370:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14264,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12370:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12350:37:32"
+ },
+ "returnParameters": {
+ "id": 14269,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14268,
+ "mutability": "mutable",
+ "name": "newTimestamp",
+ "nameLocation": "12419:12:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14283,
+ "src": "12411:20:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14267,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12411:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12410:22:32"
+ },
+ "scope": 14469,
+ "src": "12331:198:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14320,
+ "nodeType": "Block",
+ "src": "12637:240:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14293,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14285,
+ "src": "12655:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14294,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14287,
+ "src": "12672:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12655:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14292,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12647:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12647:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14297,
+ "nodeType": "ExpressionStatement",
+ "src": "12647:37:32"
+ },
+ {
+ "assignments": [
+ 14299,
+ null,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14299,
+ "mutability": "mutable",
+ "name": "fromYear",
+ "nameLocation": "12703:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14320,
+ "src": "12695:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14298,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12695:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null,
+ null
+ ],
+ "id": 14305,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14303,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14301,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14285,
+ "src": "12729:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14302,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "12745:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12729:31:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14300,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "12717:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14304,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12717:44:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12694:67:32"
+ },
+ {
+ "assignments": [
+ 14307,
+ null,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14307,
+ "mutability": "mutable",
+ "name": "toYear",
+ "nameLocation": "12780:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14320,
+ "src": "12772:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14306,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12772:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null,
+ null
+ ],
+ "id": 14313,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14311,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14309,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14287,
+ "src": "12804:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14310,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "12818:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12804:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14308,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "12792:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12792:42:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12771:63:32"
+ },
+ {
+ "expression": {
+ "id": 14318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14314,
+ "name": "_years",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14290,
+ "src": "12844:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14315,
+ "name": "toYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14307,
+ "src": "12853:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14316,
+ "name": "fromYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14299,
+ "src": "12862:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12853:17:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12844:26:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14319,
+ "nodeType": "ExpressionStatement",
+ "src": "12844:26:32"
+ }
+ ]
+ },
+ "id": 14321,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffYears",
+ "nameLocation": "12544:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14288,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14285,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "12562:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14321,
+ "src": "12554:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14284,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12554:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14287,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "12585:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14321,
+ "src": "12577:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14286,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12577:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12553:44:32"
+ },
+ "returnParameters": {
+ "id": 14291,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14290,
+ "mutability": "mutable",
+ "name": "_years",
+ "nameLocation": "12629:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14321,
+ "src": "12621:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14289,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12621:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12620:16:32"
+ },
+ "scope": 14469,
+ "src": "12535:342:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14370,
+ "nodeType": "Block",
+ "src": "12987:307:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14333,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14331,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14323,
+ "src": "13005:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14332,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14325,
+ "src": "13022:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13005:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14330,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12997:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12997:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14335,
+ "nodeType": "ExpressionStatement",
+ "src": "12997:37:32"
+ },
+ {
+ "assignments": [
+ 14337,
+ 14339,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14337,
+ "mutability": "mutable",
+ "name": "fromYear",
+ "nameLocation": "13053:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14370,
+ "src": "13045:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14336,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13045:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14339,
+ "mutability": "mutable",
+ "name": "fromMonth",
+ "nameLocation": "13071:9:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14370,
+ "src": "13063:17:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14338,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13063:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 14345,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14341,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14323,
+ "src": "13097:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14342,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "13113:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13097:31:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14340,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "13085:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14344,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13085:44:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13044:85:32"
+ },
+ {
+ "assignments": [
+ 14347,
+ 14349,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14347,
+ "mutability": "mutable",
+ "name": "toYear",
+ "nameLocation": "13148:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14370,
+ "src": "13140:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14346,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13140:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14349,
+ "mutability": "mutable",
+ "name": "toMonth",
+ "nameLocation": "13164:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14370,
+ "src": "13156:15:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14348,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13156:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 14355,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14351,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14325,
+ "src": "13188:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14352,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "13202:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13188:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 14350,
+ "name": "_daysToDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 13263,
+ "src": "13176:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 14354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13176:42:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13139:79:32"
+ },
+ {
+ "expression": {
+ "id": 14368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14356,
+ "name": "_months",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14328,
+ "src": "13228:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14365,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14359,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14357,
+ "name": "toYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14347,
+ "src": "13238:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 14358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13247:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "13238:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 14360,
+ "name": "toMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14349,
+ "src": "13252:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13238:21:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14362,
+ "name": "fromYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14337,
+ "src": "13262:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 14363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13273:2:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "13262:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13238:37:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14366,
+ "name": "fromMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14339,
+ "src": "13278:9:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13238:49:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13228:59:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14369,
+ "nodeType": "ExpressionStatement",
+ "src": "13228:59:32"
+ }
+ ]
+ },
+ "id": 14371,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffMonths",
+ "nameLocation": "12892:10:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14326,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14323,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "12911:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14371,
+ "src": "12903:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14322,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12903:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14325,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "12934:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14371,
+ "src": "12926:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14324,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12926:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12902:44:32"
+ },
+ "returnParameters": {
+ "id": 14329,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14328,
+ "mutability": "mutable",
+ "name": "_months",
+ "nameLocation": "12978:7:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14371,
+ "src": "12970:15:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14327,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12970:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12969:17:32"
+ },
+ "scope": 14469,
+ "src": "12883:411:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14395,
+ "nodeType": "Block",
+ "src": "13400:119:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14381,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14373,
+ "src": "13418:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14382,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14375,
+ "src": "13435:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13418:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14380,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13410:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13410:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14385,
+ "nodeType": "ExpressionStatement",
+ "src": "13410:37:32"
+ },
+ {
+ "expression": {
+ "id": 14393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14386,
+ "name": "_days",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14378,
+ "src": "13457:5:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14392,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14387,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14375,
+ "src": "13466:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14388,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14373,
+ "src": "13480:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13466:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14390,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13465:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14391,
+ "name": "SECONDS_PER_DAY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12975,
+ "src": "13497:15:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13465:47:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13457:55:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14394,
+ "nodeType": "ExpressionStatement",
+ "src": "13457:55:32"
+ }
+ ]
+ },
+ "id": 14396,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffDays",
+ "nameLocation": "13309:8:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14376,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14373,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "13326:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14396,
+ "src": "13318:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14372,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13318:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14375,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "13349:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14396,
+ "src": "13341:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14374,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13341:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13317:44:32"
+ },
+ "returnParameters": {
+ "id": 14379,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14378,
+ "mutability": "mutable",
+ "name": "_days",
+ "nameLocation": "13393:5:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14396,
+ "src": "13385:13:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14377,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13385:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13384:15:32"
+ },
+ "scope": 14469,
+ "src": "13300:219:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14420,
+ "nodeType": "Block",
+ "src": "13627:121:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14408,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14406,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14398,
+ "src": "13645:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14407,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14400,
+ "src": "13662:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13645:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14405,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13637:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14409,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13637:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14410,
+ "nodeType": "ExpressionStatement",
+ "src": "13637:37:32"
+ },
+ {
+ "expression": {
+ "id": 14418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14411,
+ "name": "_hours",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14403,
+ "src": "13684:6:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14417,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14414,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14412,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14400,
+ "src": "13694:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14413,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14398,
+ "src": "13708:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13694:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14415,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13693:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14416,
+ "name": "SECONDS_PER_HOUR",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12980,
+ "src": "13725:16:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13693:48:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13684:57:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14419,
+ "nodeType": "ExpressionStatement",
+ "src": "13684:57:32"
+ }
+ ]
+ },
+ "id": 14421,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffHours",
+ "nameLocation": "13534:9:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14401,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14398,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "13552:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14421,
+ "src": "13544:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14397,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13544:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14400,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "13575:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14421,
+ "src": "13567:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14399,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13567:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13543:44:32"
+ },
+ "returnParameters": {
+ "id": 14404,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14403,
+ "mutability": "mutable",
+ "name": "_hours",
+ "nameLocation": "13619:6:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14421,
+ "src": "13611:14:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14402,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13611:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13610:16:32"
+ },
+ "scope": 14469,
+ "src": "13525:223:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14445,
+ "nodeType": "Block",
+ "src": "13860:125:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14431,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14423,
+ "src": "13878:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14432,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14425,
+ "src": "13895:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13878:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14430,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13870:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13870:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14435,
+ "nodeType": "ExpressionStatement",
+ "src": "13870:37:32"
+ },
+ {
+ "expression": {
+ "id": 14443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14436,
+ "name": "_minutes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14428,
+ "src": "13917:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14439,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14437,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14425,
+ "src": "13929:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14438,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14423,
+ "src": "13943:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13929:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 14440,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13928:29:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 14441,
+ "name": "SECONDS_PER_MINUTE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12983,
+ "src": "13960:18:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13928:50:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13917:61:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14444,
+ "nodeType": "ExpressionStatement",
+ "src": "13917:61:32"
+ }
+ ]
+ },
+ "id": 14446,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffMinutes",
+ "nameLocation": "13763:11:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14426,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14423,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "13783:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14446,
+ "src": "13775:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14422,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13775:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14425,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "13806:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14446,
+ "src": "13798:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14424,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13798:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13774:44:32"
+ },
+ "returnParameters": {
+ "id": 14429,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14428,
+ "mutability": "mutable",
+ "name": "_minutes",
+ "nameLocation": "13850:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14446,
+ "src": "13842:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14427,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13842:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13841:18:32"
+ },
+ "scope": 14469,
+ "src": "13754:231:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 14467,
+ "nodeType": "Block",
+ "src": "14097:102:32",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14458,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14456,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14448,
+ "src": "14115:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 14457,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14450,
+ "src": "14132:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14115:28:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 14455,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14107:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 14459,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14107:37:32",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14460,
+ "nodeType": "ExpressionStatement",
+ "src": "14107:37:32"
+ },
+ {
+ "expression": {
+ "id": 14465,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 14461,
+ "name": "_seconds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14453,
+ "src": "14154:8:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 14464,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14462,
+ "name": "toTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14450,
+ "src": "14165:11:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 14463,
+ "name": "fromTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14448,
+ "src": "14179:13:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14165:27:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14154:38:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14466,
+ "nodeType": "ExpressionStatement",
+ "src": "14154:38:32"
+ }
+ ]
+ },
+ "id": 14468,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "diffSeconds",
+ "nameLocation": "14000:11:32",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14451,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14448,
+ "mutability": "mutable",
+ "name": "fromTimestamp",
+ "nameLocation": "14020:13:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14468,
+ "src": "14012:21:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14447,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14012:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14450,
+ "mutability": "mutable",
+ "name": "toTimestamp",
+ "nameLocation": "14043:11:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14468,
+ "src": "14035:19:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14449,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14035:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14011:44:32"
+ },
+ "returnParameters": {
+ "id": 14454,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14453,
+ "mutability": "mutable",
+ "name": "_seconds",
+ "nameLocation": "14087:8:32",
+ "nodeType": "VariableDeclaration",
+ "scope": 14468,
+ "src": "14079:16:32",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14452,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14079:7:32",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14078:18:32"
+ },
+ "scope": 14469,
+ "src": "13991:208:32",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 14470,
+ "src": "928:13273:32",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "32:14170:32"
+ },
+ "id": 32
+ },
+ "contracts/constants/CircuitConstants.sol": {
+ "ast": {
+ "absolutePath": "contracts/constants/CircuitConstants.sol",
+ "exportedSymbols": {
+ "CircuitConstants": [
+ 14505
+ ]
+ },
+ "id": 14506,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14471,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "32:23:33"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "CircuitConstants",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "documentation": {
+ "id": 14472,
+ "nodeType": "StructuredDocumentation",
+ "src": "57:265:33",
+ "text": " @title Circuit Constants Library\n @notice This library defines constants representing indices used to access public signals\n of various circuits.\n @dev These indices map directly to specific data fields in the corresponding circuits proofs."
+ },
+ "fullyImplemented": true,
+ "id": 14505,
+ "linearizedBaseContracts": [
+ 14505
+ ],
+ "name": "CircuitConstants",
+ "nameLocation": "331:16:33",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14473,
+ "nodeType": "StructuredDocumentation",
+ "src": "461:98:33",
+ "text": " @notice Index to access the hashIndex in the credential circuit public signals."
+ },
+ "id": 14476,
+ "mutability": "constant",
+ "name": "CREDENTIAL_HASH_INDEX_INDEX",
+ "nameLocation": "581:27:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "564:48:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14474,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "564:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 14475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "611:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14477,
+ "nodeType": "StructuredDocumentation",
+ "src": "618:98:33",
+ "text": " @notice Index to access the hashValue in the credential circuit public signals."
+ },
+ "id": 14480,
+ "mutability": "constant",
+ "name": "CREDENTIAL_HASH_VALUE_INDEX",
+ "nameLocation": "738:27:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "721:48:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14478,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "721:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31",
+ "id": 14479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "768:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14481,
+ "nodeType": "StructuredDocumentation",
+ "src": "775:95:33",
+ "text": " @notice Index to access the linkId in the credential circuit public signals."
+ },
+ "id": 14484,
+ "mutability": "constant",
+ "name": "CREDENTIAL_LINK_ID_INDEX",
+ "nameLocation": "892:24:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "875:45:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14482,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "875:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32",
+ "id": 14483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "919:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14485,
+ "nodeType": "StructuredDocumentation",
+ "src": "926:100:33",
+ "text": " @notice Index to access the currentDate in the credential circuit public signals."
+ },
+ "id": 14488,
+ "mutability": "constant",
+ "name": "CREDENTIAL_CURRENT_DATE_INDEX",
+ "nameLocation": "1048:29:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "1031:50:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14486,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1031:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "33",
+ "id": 14487,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1080:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14489,
+ "nodeType": "StructuredDocumentation",
+ "src": "1087:101:33",
+ "text": " @notice Index to access the issuanceDate in the credential circuit public signals."
+ },
+ "id": 14492,
+ "mutability": "constant",
+ "name": "CREDENTIAL_ISSUANCE_DATE_INDEX",
+ "nameLocation": "1210:30:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "1193:51:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14490,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1193:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34",
+ "id": 14491,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1243:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14493,
+ "nodeType": "StructuredDocumentation",
+ "src": "1250:101:33",
+ "text": " @notice Index to access the templateRoot in the credential circuit public signals."
+ },
+ "id": 14496,
+ "mutability": "constant",
+ "name": "CREDENTIAL_TEMPLATE_ROOT_INDEX",
+ "nameLocation": "1373:30:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "1356:51:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14494,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1356:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35",
+ "id": 14495,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1406:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14497,
+ "nodeType": "StructuredDocumentation",
+ "src": "1413:102:33",
+ "text": " @notice Index to access the issuerDidHash in the credential circuit public signals."
+ },
+ "id": 14500,
+ "mutability": "constant",
+ "name": "CREDENTIAL_ISSUER_DID_HASH_INDEX",
+ "nameLocation": "1537:32:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "1520:53:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14498,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1520:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36",
+ "id": 14499,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1572:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 14501,
+ "nodeType": "StructuredDocumentation",
+ "src": "1579:104:33",
+ "text": " @notice Index to access the revocationNonce in the credential circuit public signals."
+ },
+ "id": 14504,
+ "mutability": "constant",
+ "name": "CREDENTIAL_REVOCATION_NONCE_INDEX",
+ "nameLocation": "1705:33:33",
+ "nodeType": "VariableDeclaration",
+ "scope": 14505,
+ "src": "1688:54:33",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14502,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1688:7:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37",
+ "id": 14503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1741:1:33",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "visibility": "internal"
+ }
+ ],
+ "scope": 14506,
+ "src": "323:1422:33",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "32:1714:33"
+ },
+ "id": 33
+ },
+ "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol": {
+ "ast": {
+ "absolutePath": "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol",
+ "exportedSymbols": {
+ "IAnonAadhaarCircuitVerifier": [
+ 14553
+ ]
+ },
+ "id": 14554,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14507,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "32:23:34"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IAnonAadhaarCircuitVerifier",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 14508,
+ "nodeType": "StructuredDocumentation",
+ "src": "56:234:34",
+ "text": " @title IAnonAadhaarCircuitVerifier\n @notice Interface for verifying AnonAadhaar circuit proofs.\n @dev This interface defines the structure of an AnonAadhaar\n circuit proof and exposes a function to verify such proofs."
+ },
+ "fullyImplemented": false,
+ "id": 14553,
+ "linearizedBaseContracts": [
+ 14553
+ ],
+ "name": "IAnonAadhaarCircuitVerifier",
+ "nameLocation": "301:27:34",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof",
+ "documentation": {
+ "id": 14509,
+ "nodeType": "StructuredDocumentation",
+ "src": "335:519:34",
+ "text": " @notice Represents an AnonAadhaar circuit proof.\n @dev This structure encapsulates the required proof elements.\n @param a An array of two unsigned integers representing the proof component 'a'.\n @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n @param c An array of two unsigned integers representing the proof component 'c'.\n @param pubSignals An array of three unsigned integers representing the public signals associated with the proof."
+ },
+ "id": 14528,
+ "members": [
+ {
+ "constant": false,
+ "id": 14513,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "911:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14528,
+ "src": "900:12:34",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14510,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "900:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14512,
+ "length": {
+ "hexValue": "32",
+ "id": 14511,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "908:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "900:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14519,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "936:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14528,
+ "src": "922:15:34",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 14514,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "922:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14516,
+ "length": {
+ "hexValue": "32",
+ "id": 14515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "930:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "922:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 14518,
+ "length": {
+ "hexValue": "32",
+ "id": 14517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "933:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "922:13:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14523,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "958:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14528,
+ "src": "947:12:34",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14520,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "947:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14522,
+ "length": {
+ "hexValue": "32",
+ "id": 14521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "955:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "947:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14527,
+ "mutability": "mutable",
+ "name": "pubSignals",
+ "nameLocation": "981:10:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14528,
+ "src": "969:22:34",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr",
+ "typeString": "uint256[12]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14524,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "969:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14526,
+ "length": {
+ "hexValue": "3132",
+ "id": 14525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "977:2:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "969:11:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr",
+ "typeString": "uint256[12]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "AnonAadhaarCircuitProof",
+ "nameLocation": "866:23:34",
+ "nodeType": "StructDefinition",
+ "scope": 14553,
+ "src": "859:139:34",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 14529,
+ "nodeType": "StructuredDocumentation",
+ "src": "1004:474:34",
+ "text": " @notice Verifies a given AnonAadhaar circuit proof.\n @dev This function checks the validity of the provided proof parameters.\n @param a The 'a' component of the proof.\n @param b The 'b' component of the proof.\n @param c The 'c' component of the proof.\n @param pubSignals The public signals associated with the proof.\n @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false)."
+ },
+ "functionSelector": "8cbac0fa",
+ "id": 14552,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "1492:11:34",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14548,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14533,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1533:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14552,
+ "src": "1513:21:34",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14530,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1513:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14532,
+ "length": {
+ "hexValue": "32",
+ "id": 14531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1521:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1513:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14539,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1567:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14552,
+ "src": "1544:24:34",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 14534,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1544:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14536,
+ "length": {
+ "hexValue": "32",
+ "id": 14535,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1552:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1544:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 14538,
+ "length": {
+ "hexValue": "32",
+ "id": 14537,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1555:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1544:13:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14543,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "1598:1:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14552,
+ "src": "1578:21:34",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14540,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1578:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14542,
+ "length": {
+ "hexValue": "32",
+ "id": 14541,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1586:1:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1578:10:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14547,
+ "mutability": "mutable",
+ "name": "pubSignals",
+ "nameLocation": "1630:10:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14552,
+ "src": "1609:31:34",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_calldata_ptr",
+ "typeString": "uint256[12]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14544,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1609:7:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14546,
+ "length": {
+ "hexValue": "3132",
+ "id": 14545,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1617:2:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1609:11:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr",
+ "typeString": "uint256[12]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1503:143:34"
+ },
+ "returnParameters": {
+ "id": 14551,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14550,
+ "mutability": "mutable",
+ "name": "isValid",
+ "nameLocation": "1675:7:34",
+ "nodeType": "VariableDeclaration",
+ "scope": 14552,
+ "src": "1670:12:34",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 14549,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1670:4:34",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1669:14:34"
+ },
+ "scope": 14553,
+ "src": "1483:201:34",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 14554,
+ "src": "291:1395:34",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "32:1655:34"
+ },
+ "id": 34
+ },
+ "contracts/interfaces/IAttestationValidator.sol": {
+ "ast": {
+ "absolutePath": "contracts/interfaces/IAttestationValidator.sol",
+ "exportedSymbols": {
+ "IAttestationValidator": [
+ 14634
+ ],
+ "ICertificatesValidator": [
+ 14661
+ ]
+ },
+ "id": 14635,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14555,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:35"
+ },
+ {
+ "absolutePath": "contracts/interfaces/ICertificatesValidator.sol",
+ "file": "./ICertificatesValidator.sol",
+ "id": 14557,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 14635,
+ "sourceUnit": 14662,
+ "src": "61:68:35",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14556,
+ "name": "ICertificatesValidator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14661,
+ "src": "69:22:35",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IAttestationValidator",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 14558,
+ "nodeType": "StructuredDocumentation",
+ "src": "131:82:35",
+ "text": " @dev IAttestationValidator. Interface for verification of attestations."
+ },
+ "fullyImplemented": false,
+ "id": 14634,
+ "linearizedBaseContracts": [
+ 14634
+ ],
+ "name": "IAttestationValidator",
+ "nameLocation": "224:21:35",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "IAttestationValidator.Attestation",
+ "id": 14564,
+ "members": [
+ {
+ "constant": false,
+ "id": 14560,
+ "mutability": "mutable",
+ "name": "tag",
+ "nameLocation": "289:3:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14564,
+ "src": "281:11:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14559,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "281:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14563,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "319:5:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14564,
+ "src": "302:22:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AttestationValue_$14578_storage_ptr",
+ "typeString": "struct IAttestationValidator.AttestationValue"
+ },
+ "typeName": {
+ "id": 14562,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14561,
+ "name": "AttestationValue",
+ "nameLocations": [
+ "302:16:35"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14578,
+ "src": "302:16:35"
+ },
+ "referencedDeclaration": 14578,
+ "src": "302:16:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AttestationValue_$14578_storage_ptr",
+ "typeString": "struct IAttestationValidator.AttestationValue"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Attestation",
+ "nameLocation": "259:11:35",
+ "nodeType": "StructDefinition",
+ "scope": 14634,
+ "src": "252:79:35",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IAttestationValidator.AttestationValue",
+ "id": 14578,
+ "members": [
+ {
+ "constant": false,
+ "id": 14566,
+ "mutability": "mutable",
+ "name": "protectedHeader",
+ "nameLocation": "377:15:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "371:21:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14565,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "371:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14568,
+ "mutability": "mutable",
+ "name": "unprotectedHeader",
+ "nameLocation": "408:17:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "402:23:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14567,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "402:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14571,
+ "mutability": "mutable",
+ "name": "payload",
+ "nameLocation": "443:7:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "435:15:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Payload_$14599_storage_ptr",
+ "typeString": "struct IAttestationValidator.Payload"
+ },
+ "typeName": {
+ "id": 14570,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14569,
+ "name": "Payload",
+ "nameLocations": [
+ "435:7:35"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14599,
+ "src": "435:7:35"
+ },
+ "referencedDeclaration": 14599,
+ "src": "435:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Payload_$14599_storage_ptr",
+ "typeString": "struct IAttestationValidator.Payload"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14573,
+ "mutability": "mutable",
+ "name": "rawPayload",
+ "nameLocation": "466:10:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "460:16:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14572,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "460:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14575,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "492:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "486:15:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14574,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "486:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14577,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "519:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14578,
+ "src": "511:17:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 14576,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "511:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "AttestationValue",
+ "nameLocation": "344:16:35",
+ "nodeType": "StructDefinition",
+ "scope": 14634,
+ "src": "337:198:35",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "IAttestationValidator.Payload",
+ "id": 14599,
+ "members": [
+ {
+ "constant": false,
+ "id": 14580,
+ "mutability": "mutable",
+ "name": "moduleId",
+ "nameLocation": "573:8:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "566:15:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14579,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "566:6:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14582,
+ "mutability": "mutable",
+ "name": "digest",
+ "nameLocation": "598:6:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "591:13:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14581,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "591:6:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14584,
+ "mutability": "mutable",
+ "name": "timestamp",
+ "nameLocation": "622:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "614:17:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14583,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "614:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14587,
+ "mutability": "mutable",
+ "name": "pcrs",
+ "nameLocation": "649:4:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "641:12:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
+ "typeString": "bytes[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14585,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "641:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "id": 14586,
+ "nodeType": "ArrayTypeName",
+ "src": "641:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
+ "typeString": "bytes[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14589,
+ "mutability": "mutable",
+ "name": "certificate",
+ "nameLocation": "669:11:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "663:17:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14588,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "663:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14592,
+ "mutability": "mutable",
+ "name": "cabundle",
+ "nameLocation": "698:8:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "690:16:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
+ "typeString": "bytes[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14590,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "690:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "id": 14591,
+ "nodeType": "ArrayTypeName",
+ "src": "690:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
+ "typeString": "bytes[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14594,
+ "mutability": "mutable",
+ "name": "publicKey",
+ "nameLocation": "722:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "716:15:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14593,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "716:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14596,
+ "mutability": "mutable",
+ "name": "userData",
+ "nameLocation": "747:8:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "741:14:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14595,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "741:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14598,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "771:5:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14599,
+ "src": "765:11:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14597,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "765:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Payload",
+ "nameLocation": "548:7:35",
+ "nodeType": "StructDefinition",
+ "scope": 14634,
+ "src": "541:242:35",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 14600,
+ "nodeType": "StructuredDocumentation",
+ "src": "789:51:35",
+ "text": " @dev Get version of the contract"
+ },
+ "functionSelector": "54fd4d50",
+ "id": 14605,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "version",
+ "nameLocation": "854:7:35",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14601,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "861:2:35"
+ },
+ "returnParameters": {
+ "id": 14604,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14603,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14605,
+ "src": "887:13:35",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14602,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "887:6:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "886:15:35"
+ },
+ "scope": 14634,
+ "src": "845:57:35",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 14606,
+ "nodeType": "StructuredDocumentation",
+ "src": "908:186:35",
+ "text": " @dev Validates the attestation\n @param attestation bytes for the attestation\n @return User data fields and a boolean indicating if the attestation is valid"
+ },
+ "functionSelector": "4cc3a4a5",
+ "id": 14617,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "validateAttestation",
+ "nameLocation": "1108:19:35",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14609,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14608,
+ "mutability": "mutable",
+ "name": "attestation",
+ "nameLocation": "1152:11:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14617,
+ "src": "1137:26:35",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14607,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1137:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1127:42:35"
+ },
+ "returnParameters": {
+ "id": 14616,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14611,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14617,
+ "src": "1188:12:35",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14610,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1188:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14613,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "1210:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14617,
+ "src": "1202:17:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 14612,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1202:7:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14615,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14617,
+ "src": "1221:4:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 14614,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1221:4:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1187:39:35"
+ },
+ "scope": 14634,
+ "src": "1099:128:35",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 14618,
+ "nodeType": "StructuredDocumentation",
+ "src": "1233:130:35",
+ "text": " @dev Parse the attestation data and return the parsed data\n @param attestation The attestation bytes data"
+ },
+ "functionSelector": "f3808b76",
+ "id": 14626,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parseAttestation",
+ "nameLocation": "1377:16:35",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14621,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14620,
+ "mutability": "mutable",
+ "name": "attestation",
+ "nameLocation": "1418:11:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14626,
+ "src": "1403:26:35",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14619,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1403:5:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1393:42:35"
+ },
+ "returnParameters": {
+ "id": 14625,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14624,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14626,
+ "src": "1459:18:35",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Attestation_$14564_memory_ptr",
+ "typeString": "struct IAttestationValidator.Attestation"
+ },
+ "typeName": {
+ "id": 14623,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14622,
+ "name": "Attestation",
+ "nameLocations": [
+ "1459:11:35"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14564,
+ "src": "1459:11:35"
+ },
+ "referencedDeclaration": 14564,
+ "src": "1459:11:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Attestation_$14564_storage_ptr",
+ "typeString": "struct IAttestationValidator.Attestation"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1458:20:35"
+ },
+ "scope": 14634,
+ "src": "1368:111:35",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 14627,
+ "nodeType": "StructuredDocumentation",
+ "src": "1485:99:35",
+ "text": " @dev Set certificates validator\n @param validator - certificates validator"
+ },
+ "functionSelector": "7a161959",
+ "id": 14633,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCertificatesValidator",
+ "nameLocation": "1598:24:35",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14631,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14630,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "1646:9:35",
+ "nodeType": "VariableDeclaration",
+ "scope": 14633,
+ "src": "1623:32:35",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_ICertificatesValidator_$14661",
+ "typeString": "contract ICertificatesValidator"
+ },
+ "typeName": {
+ "id": 14629,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14628,
+ "name": "ICertificatesValidator",
+ "nameLocations": [
+ "1623:22:35"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14661,
+ "src": "1623:22:35"
+ },
+ "referencedDeclaration": 14661,
+ "src": "1623:22:35",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_ICertificatesValidator_$14661",
+ "typeString": "contract ICertificatesValidator"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1622:34:35"
+ },
+ "returnParameters": {
+ "id": 14632,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1665:0:35"
+ },
+ "scope": 14634,
+ "src": "1589:77:35",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 14635,
+ "src": "214:1454:35",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:1633:35"
+ },
+ "id": 35
+ },
+ "contracts/interfaces/ICertificatesValidator.sol": {
+ "ast": {
+ "absolutePath": "contracts/interfaces/ICertificatesValidator.sol",
+ "exportedSymbols": {
+ "ICertificatesValidator": [
+ 14661
+ ]
+ },
+ "id": 14662,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14636,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:36"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ICertificatesValidator",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 14637,
+ "nodeType": "StructuredDocumentation",
+ "src": "61:81:36",
+ "text": " @dev ICertificatesValidator. Interface for validation of certificates."
+ },
+ "fullyImplemented": false,
+ "id": 14661,
+ "linearizedBaseContracts": [
+ 14661
+ ],
+ "name": "ICertificatesValidator",
+ "nameLocation": "153:22:36",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 14638,
+ "nodeType": "StructuredDocumentation",
+ "src": "182:51:36",
+ "text": " @dev Get version of the contract"
+ },
+ "functionSelector": "54fd4d50",
+ "id": 14643,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "version",
+ "nameLocation": "247:7:36",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14639,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "254:2:36"
+ },
+ "returnParameters": {
+ "id": 14642,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14641,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14643,
+ "src": "280:13:36",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14640,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "280:6:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "279:15:36"
+ },
+ "scope": 14661,
+ "src": "238:57:36",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 14644,
+ "nodeType": "StructuredDocumentation",
+ "src": "301:157:36",
+ "text": " @dev Validate the chain of certificates\n @param certificates Chain of certificates in PEM format sorted. Root certificate is latest."
+ },
+ "functionSelector": "8f084f19",
+ "id": 14652,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "validateChainOfCertificates",
+ "nameLocation": "472:27:36",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14648,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14647,
+ "mutability": "mutable",
+ "name": "certificates",
+ "nameLocation": "526:12:36",
+ "nodeType": "VariableDeclaration",
+ "scope": 14652,
+ "src": "509:29:36",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "bytes[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14645,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "509:5:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "id": 14646,
+ "nodeType": "ArrayTypeName",
+ "src": "509:7:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
+ "typeString": "bytes[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "499:45:36"
+ },
+ "returnParameters": {
+ "id": 14651,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14650,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 14652,
+ "src": "568:4:36",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 14649,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "568:4:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "567:6:36"
+ },
+ "scope": 14661,
+ "src": "463:111:36",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 14653,
+ "nodeType": "StructuredDocumentation",
+ "src": "580:221:36",
+ "text": " @dev Adds certificate verification to the contract\n @param subjectCertificate Certificate to verify the signature with issuer public key.\n @param issuerCertificate Certificate of the issuer."
+ },
+ "functionSelector": "3d6584a6",
+ "id": 14660,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addCertificateVerification",
+ "nameLocation": "815:26:36",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14658,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14655,
+ "mutability": "mutable",
+ "name": "subjectCertificate",
+ "nameLocation": "866:18:36",
+ "nodeType": "VariableDeclaration",
+ "scope": 14660,
+ "src": "851:33:36",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14654,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "851:5:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14657,
+ "mutability": "mutable",
+ "name": "issuerCertificate",
+ "nameLocation": "909:17:36",
+ "nodeType": "VariableDeclaration",
+ "scope": 14660,
+ "src": "894:32:36",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14656,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:5:36",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "841:91:36"
+ },
+ "returnParameters": {
+ "id": 14659,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "941:0:36"
+ },
+ "scope": 14661,
+ "src": "806:136:36",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 14662,
+ "src": "143:801:36",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "36:909:36"
+ },
+ "id": 36
+ },
+ "contracts/interfaces/ICredentialCircuitVerifier.sol": {
+ "ast": {
+ "absolutePath": "contracts/interfaces/ICredentialCircuitVerifier.sol",
+ "exportedSymbols": {
+ "ICredentialCircuitVerifier": [
+ 14709
+ ]
+ },
+ "id": 14710,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14663,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "32:23:37"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ICredentialCircuitVerifier",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 14664,
+ "nodeType": "StructuredDocumentation",
+ "src": "56:227:37",
+ "text": " @title ICredentialCircuitVerifier\n @notice Interface for verifying credential circuit proofs.\n @dev This interface defines the structure of a credential circuit proof and exposes a function to verify such proofs."
+ },
+ "fullyImplemented": false,
+ "id": 14709,
+ "linearizedBaseContracts": [
+ 14709
+ ],
+ "name": "ICredentialCircuitVerifier",
+ "nameLocation": "294:26:37",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "canonicalName": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "documentation": {
+ "id": 14665,
+ "nodeType": "StructuredDocumentation",
+ "src": "327:517:37",
+ "text": " @notice Represents a credential circuit proof.\n @dev This structure encapsulates the required proof elements.\n @param a An array of two unsigned integers representing the proof component 'a'.\n @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n @param c An array of two unsigned integers representing the proof component 'c'.\n @param pubSignals An array of three unsigned integers representing the public signals associated with the proof."
+ },
+ "id": 14684,
+ "members": [
+ {
+ "constant": false,
+ "id": 14669,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "900:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14684,
+ "src": "889:12:37",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14666,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "889:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14668,
+ "length": {
+ "hexValue": "32",
+ "id": 14667,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "897:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "889:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14675,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "925:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14684,
+ "src": "911:15:37",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 14670,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "911:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14672,
+ "length": {
+ "hexValue": "32",
+ "id": 14671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "919:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "911:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 14674,
+ "length": {
+ "hexValue": "32",
+ "id": 14673,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "922:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "911:13:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14679,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "947:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14684,
+ "src": "936:12:37",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14676,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "936:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14678,
+ "length": {
+ "hexValue": "32",
+ "id": 14677,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "944:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "936:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14683,
+ "mutability": "mutable",
+ "name": "pubSignals",
+ "nameLocation": "969:10:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14684,
+ "src": "958:21:37",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14680,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "958:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14682,
+ "length": {
+ "hexValue": "38",
+ "id": 14681,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "966:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "958:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "CredentialCircuitProof",
+ "nameLocation": "856:22:37",
+ "nodeType": "StructDefinition",
+ "scope": 14709,
+ "src": "849:137:37",
+ "visibility": "public"
+ },
+ {
+ "documentation": {
+ "id": 14685,
+ "nodeType": "StructuredDocumentation",
+ "src": "992:473:37",
+ "text": " @notice Verifies a given credential circuit proof.\n @dev This function checks the validity of the provided proof parameters.\n @param a The 'a' component of the proof.\n @param b The 'b' component of the proof.\n @param c The 'c' component of the proof.\n @param pubSignals The public signals associated with the proof.\n @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false)."
+ },
+ "functionSelector": "c9219a7a",
+ "id": 14708,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "1479:11:37",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14704,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14689,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "1520:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14708,
+ "src": "1500:21:37",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14686,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1500:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14688,
+ "length": {
+ "hexValue": "32",
+ "id": 14687,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1508:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1500:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14695,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "1554:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14708,
+ "src": "1531:24:37",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 14690,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1531:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14692,
+ "length": {
+ "hexValue": "32",
+ "id": 14691,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1539:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1531:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 14694,
+ "length": {
+ "hexValue": "32",
+ "id": 14693,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1542:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1531:13:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14699,
+ "mutability": "mutable",
+ "name": "c",
+ "nameLocation": "1585:1:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14708,
+ "src": "1565:21:37",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14696,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1565:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14698,
+ "length": {
+ "hexValue": "32",
+ "id": 14697,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1573:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1565:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14703,
+ "mutability": "mutable",
+ "name": "pubSignals",
+ "nameLocation": "1616:10:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14708,
+ "src": "1596:30:37",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14700,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1596:7:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14702,
+ "length": {
+ "hexValue": "38",
+ "id": 14701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1604:1:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "1596:10:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1490:142:37"
+ },
+ "returnParameters": {
+ "id": 14707,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14706,
+ "mutability": "mutable",
+ "name": "isValid",
+ "nameLocation": "1661:7:37",
+ "nodeType": "VariableDeclaration",
+ "scope": 14708,
+ "src": "1656:12:37",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 14705,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1656:4:37",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1655:14:37"
+ },
+ "scope": 14709,
+ "src": "1470:200:37",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 14710,
+ "src": "284:1388:37",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "32:1641:37"
+ },
+ "id": 37
+ },
+ "contracts/verifiers/AnonAadhaarCredentialIssuer.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol",
+ "exportedSymbols": {
+ "AnonAadhaarCircuitVerifierUpdated": [
+ 14793
+ ],
+ "AnonAadhaarCredentialIssuer": [
+ 15972
+ ],
+ "CredentialRevoked": [
+ 14787
+ ],
+ "IAnonAadhaarCircuitVerifier": [
+ 14553
+ ],
+ "IZKPVerifier": [
+ 550
+ ],
+ "IdentityBase": [
+ 1327
+ ],
+ "IdentityLib": [
+ 2217
+ ],
+ "InvalidAnonAadhaarProof": [
+ 14725
+ ],
+ "InvalidExpirationDate": [
+ 14741
+ ],
+ "InvalidHashIndex": [
+ 14727
+ ],
+ "InvalidHashValue": [
+ 14729
+ ],
+ "InvalidIssuerDidHash": [
+ 14735
+ ],
+ "InvalidNullifierSeed": [
+ 14731
+ ],
+ "InvalidPubKeyHash": [
+ 14745
+ ],
+ "InvalidRevocationNonce": [
+ 14759
+ ],
+ "InvalidStateContractAddress": [
+ 14751
+ ],
+ "InvalidTemplateRoot": [
+ 14733
+ ],
+ "InvalidVerifierAddress": [
+ 14749
+ ],
+ "IssuerDidHashUpdated": [
+ 14773
+ ],
+ "LengthMismatch": [
+ 14765
+ ],
+ "NoAnonAadhaarCircuitIdFound": [
+ 14769
+ ],
+ "NoVerifierSet": [
+ 14723
+ ],
+ "NullifierDoesNotExist": [
+ 14747
+ ],
+ "Ownable2StepUpgradeable": [
+ 4773
+ ],
+ "ProofExpired": [
+ 14743
+ ],
+ "PublicKeyHashAdded": [
+ 14781
+ ],
+ "TemplateRootUpdated": [
+ 14777
+ ],
+ "UnsupportedQrVersion": [
+ 14755
+ ]
+ },
+ "id": 15973,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 14711,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:38"
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/IdentityLib.sol",
+ "file": "@iden3/contracts/lib/IdentityLib.sol",
+ "id": 14713,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 15973,
+ "sourceUnit": 2218,
+ "src": "61:65:38",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14712,
+ "name": "IdentityLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2217,
+ "src": "69:11:38",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/IdentityBase.sol",
+ "file": "@iden3/contracts/lib/IdentityBase.sol",
+ "id": 14715,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 15973,
+ "sourceUnit": 1328,
+ "src": "127:67:38",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14714,
+ "name": "IdentityBase",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1327,
+ "src": "135:12:38",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/interfaces/IZKPVerifier.sol",
+ "file": "@iden3/contracts/interfaces/IZKPVerifier.sol",
+ "id": 14717,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 15973,
+ "sourceUnit": 551,
+ "src": "195:74:38",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14716,
+ "name": "IZKPVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 550,
+ "src": "203:12:38",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol",
+ "file": "../interfaces/IAnonAadhaarCircuitVerifier.sol",
+ "id": 14719,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 15973,
+ "sourceUnit": 14554,
+ "src": "270:90:38",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14718,
+ "name": "IAnonAadhaarCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14553,
+ "src": "278:27:38",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol",
+ "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol",
+ "id": 14721,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 15973,
+ "sourceUnit": 4774,
+ "src": "361:111:38",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 14720,
+ "name": "Ownable2StepUpgradeable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4773,
+ "src": "369:23:38",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "0ee78d58",
+ "id": 14723,
+ "name": "NoVerifierSet",
+ "nameLocation": "480:13:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14722,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "493:2:38"
+ },
+ "src": "474:22:38"
+ },
+ {
+ "errorSelector": "b4b32e6f",
+ "id": 14725,
+ "name": "InvalidAnonAadhaarProof",
+ "nameLocation": "503:23:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14724,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "526:2:38"
+ },
+ "src": "497:32:38"
+ },
+ {
+ "errorSelector": "92f182ae",
+ "id": 14727,
+ "name": "InvalidHashIndex",
+ "nameLocation": "536:16:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14726,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "552:2:38"
+ },
+ "src": "530:25:38"
+ },
+ {
+ "errorSelector": "9d34ba4f",
+ "id": 14729,
+ "name": "InvalidHashValue",
+ "nameLocation": "562:16:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14728,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "578:2:38"
+ },
+ "src": "556:25:38"
+ },
+ {
+ "errorSelector": "d2cee055",
+ "id": 14731,
+ "name": "InvalidNullifierSeed",
+ "nameLocation": "588:20:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14730,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "608:2:38"
+ },
+ "src": "582:29:38"
+ },
+ {
+ "errorSelector": "81d60393",
+ "id": 14733,
+ "name": "InvalidTemplateRoot",
+ "nameLocation": "618:19:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14732,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "637:2:38"
+ },
+ "src": "612:28:38"
+ },
+ {
+ "errorSelector": "fe0c887b",
+ "id": 14735,
+ "name": "InvalidIssuerDidHash",
+ "nameLocation": "647:20:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14734,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "667:2:38"
+ },
+ "src": "641:29:38"
+ },
+ {
+ "errorSelector": "757718f2",
+ "id": 14741,
+ "name": "InvalidExpirationDate",
+ "nameLocation": "677:21:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14740,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14737,
+ "mutability": "mutable",
+ "name": "expected",
+ "nameLocation": "707:8:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14741,
+ "src": "699:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14736,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "699:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14739,
+ "mutability": "mutable",
+ "name": "provided",
+ "nameLocation": "725:8:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14741,
+ "src": "717:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14738,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "717:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "698:36:38"
+ },
+ "src": "671:64:38"
+ },
+ {
+ "errorSelector": "b67a7713",
+ "id": 14743,
+ "name": "ProofExpired",
+ "nameLocation": "742:12:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14742,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "754:2:38"
+ },
+ "src": "736:21:38"
+ },
+ {
+ "errorSelector": "ad6c2662",
+ "id": 14745,
+ "name": "InvalidPubKeyHash",
+ "nameLocation": "764:17:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14744,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "781:2:38"
+ },
+ "src": "758:26:38"
+ },
+ {
+ "errorSelector": "27522baf",
+ "id": 14747,
+ "name": "NullifierDoesNotExist",
+ "nameLocation": "791:21:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14746,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "812:2:38"
+ },
+ "src": "785:30:38"
+ },
+ {
+ "errorSelector": "10c40e8c",
+ "id": 14749,
+ "name": "InvalidVerifierAddress",
+ "nameLocation": "822:22:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14748,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "844:2:38"
+ },
+ "src": "816:31:38"
+ },
+ {
+ "errorSelector": "7eb887b3",
+ "id": 14751,
+ "name": "InvalidStateContractAddress",
+ "nameLocation": "854:27:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "881:2:38"
+ },
+ "src": "848:36:38"
+ },
+ {
+ "errorSelector": "dbbaa55f",
+ "id": 14755,
+ "name": "UnsupportedQrVersion",
+ "nameLocation": "891:20:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14754,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14753,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "920:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14755,
+ "src": "912:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14752,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "912:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "911:19:38"
+ },
+ "src": "885:46:38"
+ },
+ {
+ "errorSelector": "6ff2d366",
+ "id": 14759,
+ "name": "InvalidRevocationNonce",
+ "nameLocation": "938:22:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14758,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14757,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "968:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14759,
+ "src": "961:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 14756,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "961:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "960:24:38"
+ },
+ "src": "932:53:38"
+ },
+ {
+ "errorSelector": "ab8b67c6",
+ "id": 14765,
+ "name": "LengthMismatch",
+ "nameLocation": "992:14:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14764,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14761,
+ "mutability": "mutable",
+ "name": "length1",
+ "nameLocation": "1015:7:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14765,
+ "src": "1007:15:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14760,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1007:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14763,
+ "mutability": "mutable",
+ "name": "length2",
+ "nameLocation": "1032:7:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14765,
+ "src": "1024:15:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14762,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1024:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1006:34:38"
+ },
+ "src": "986:55:38"
+ },
+ {
+ "errorSelector": "1523e178",
+ "id": 14769,
+ "name": "NoAnonAadhaarCircuitIdFound",
+ "nameLocation": "1048:27:38",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 14768,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14767,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "1083:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14769,
+ "src": "1076:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14766,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1076:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1075:18:38"
+ },
+ "src": "1042:52:38"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "b69b4c35c29def0ac05e4ac2258986b58de5ae03feeea1802c95f4e0b5794cf1",
+ "id": 14773,
+ "name": "IssuerDidHashUpdated",
+ "nameLocation": "1102:20:38",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 14772,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14771,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "1131:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14773,
+ "src": "1123:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14770,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1123:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1122:23:38"
+ },
+ "src": "1096:50:38"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "f007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f069282267734",
+ "id": 14777,
+ "name": "TemplateRootUpdated",
+ "nameLocation": "1153:19:38",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 14776,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14775,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "1181:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14777,
+ "src": "1173:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14774,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1173:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1172:22:38"
+ },
+ "src": "1147:48:38"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee",
+ "id": 14781,
+ "name": "PublicKeyHashAdded",
+ "nameLocation": "1202:18:38",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 14780,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14779,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "publicKeyHash",
+ "nameLocation": "1229:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14781,
+ "src": "1221:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14778,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1221:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1220:23:38"
+ },
+ "src": "1196:48:38"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2",
+ "id": 14787,
+ "name": "CredentialRevoked",
+ "nameLocation": "1251:17:38",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 14786,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14783,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "1277:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14787,
+ "src": "1269:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14782,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1269:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14785,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "1295:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14787,
+ "src": "1288:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 14784,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "1288:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1268:43:38"
+ },
+ "src": "1245:67:38"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "3f04312ecef010d1cb9901bb8602db84b7b52fddcef458e04bd8e83a7fc035a4",
+ "id": 14793,
+ "name": "AnonAadhaarCircuitVerifierUpdated",
+ "nameLocation": "1319:33:38",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 14792,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14789,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "1360:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14793,
+ "src": "1353:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14788,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1353:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14791,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "verifierAddress",
+ "nameLocation": "1379:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14793,
+ "src": "1371:23:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 14790,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1371:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1352:43:38"
+ },
+ "src": "1313:83:38"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 14795,
+ "name": "IdentityBase",
+ "nameLocations": [
+ "1566:12:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1327,
+ "src": "1566:12:38"
+ },
+ "id": 14796,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1566:12:38"
+ },
+ {
+ "baseName": {
+ "id": 14797,
+ "name": "Ownable2StepUpgradeable",
+ "nameLocations": [
+ "1580:23:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4773,
+ "src": "1580:23:38"
+ },
+ "id": 14798,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1580:23:38"
+ }
+ ],
+ "canonicalName": "AnonAadhaarCredentialIssuer",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 14794,
+ "nodeType": "StructuredDocumentation",
+ "src": "1398:127:38",
+ "text": " @dev Address ownership credential issuer.\n This issuer issues non-merklized credentials in a decentralized manner."
+ },
+ "fullyImplemented": true,
+ "id": 15972,
+ "linearizedBaseContracts": [
+ 15972,
+ 4773,
+ 4968,
+ 5282,
+ 5236,
+ 1327,
+ 8727,
+ 8739,
+ 158,
+ 94
+ ],
+ "name": "AnonAadhaarCredentialIssuer",
+ "nameLocation": "1535:27:38",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 14802,
+ "libraryName": {
+ "id": 14799,
+ "name": "IdentityLib",
+ "nameLocations": [
+ "1616:11:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2217,
+ "src": "1616:11:38"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "1610:39:38",
+ "typeName": {
+ "id": 14801,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14800,
+ "name": "IdentityLib.Data",
+ "nameLocations": [
+ "1632:11:38",
+ "1644:4:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "1632:16:38"
+ },
+ "referencedDeclaration": 1371,
+ "src": "1632:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ }
+ },
+ {
+ "constant": true,
+ "functionSelector": "ffa1ad74",
+ "id": 14805,
+ "mutability": "constant",
+ "name": "VERSION",
+ "nameLocation": "1678:7:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15972,
+ "src": "1655:40:38",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14803,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1655:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "value": {
+ "hexValue": "312e302e33",
+ "id": 14804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1688:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ff079ec60e41e58015c3d06abca8c1edb1b2c61945fed5e35644385a142eb2a9",
+ "typeString": "literal_string \"1.0.3\""
+ },
+ "value": "1.0.3"
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 14808,
+ "mutability": "constant",
+ "name": "defaultCircuitId",
+ "nameLocation": "1725:16:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15972,
+ "src": "1701:60:38",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14806,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1701:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "value": {
+ "hexValue": "616e6f6e5f616164686161725f7631",
+ "id": 14807,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1744:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_2e5073a68699ac264b15227fc7182ce939f8cb038f5607144606aa0c2d899ff9",
+ "typeString": "literal_string \"anon_aadhaar_v1\""
+ },
+ "value": "anon_aadhaar_v1"
+ },
+ "visibility": "private"
+ },
+ {
+ "canonicalName": "AnonAadhaarCredentialIssuer.StateInfo",
+ "id": 14813,
+ "members": [
+ {
+ "constant": false,
+ "id": 14810,
+ "mutability": "mutable",
+ "name": "stateAddress",
+ "nameLocation": "1803:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14813,
+ "src": "1795:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 14809,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1795:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14812,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "1832:6:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14813,
+ "src": "1825:13:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 14811,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "1825:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "StateInfo",
+ "nameLocation": "1775:9:38",
+ "nodeType": "StructDefinition",
+ "scope": 15972,
+ "src": "1768:77:38",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "AnonAadhaarCredentialIssuer.CredentialProof",
+ "id": 14818,
+ "members": [
+ {
+ "constant": false,
+ "id": 14815,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "1895:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14818,
+ "src": "1888:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 14814,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1888:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14817,
+ "mutability": "mutable",
+ "name": "proof",
+ "nameLocation": "1920:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14818,
+ "src": "1914:11:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 14816,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1914:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "CredentialProof",
+ "nameLocation": "1862:15:38",
+ "nodeType": "StructDefinition",
+ "scope": 15972,
+ "src": "1855:77:38",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage",
+ "documentation": {
+ "id": 14819,
+ "nodeType": "StructuredDocumentation",
+ "src": "1938:82:38",
+ "text": "@custom:storage-location erc7201:polygonid.storage.AnonAadhaarCredentialIssuer"
+ },
+ "id": 14844,
+ "members": [
+ {
+ "constant": false,
+ "id": 14821,
+ "mutability": "mutable",
+ "name": "nullifierSeed",
+ "nameLocation": "2085:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2077:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14820,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2077:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14823,
+ "mutability": "mutable",
+ "name": "expirationTime",
+ "nameLocation": "2116:14:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2108:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14822,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2108:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14825,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "2148:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2140:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14824,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2140:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14827,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "2178:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2170:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14826,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2170:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14831,
+ "mutability": "mutable",
+ "name": "_anonAadhaarVerifiers",
+ "nameLocation": "2247:21:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2201:67:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string => address)"
+ },
+ "typeName": {
+ "id": 14830,
+ "keyName": "circuitId",
+ "keyNameLocation": "2216:9:38",
+ "keyType": {
+ "id": 14828,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2209:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "2201:45:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string => address)"
+ },
+ "valueName": "verifier",
+ "valueNameLocation": "2237:8:38",
+ "valueType": {
+ "id": 14829,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2229:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14835,
+ "mutability": "mutable",
+ "name": "publicKeysHashes",
+ "nameLocation": "2303:16:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2278:41:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ },
+ "typeName": {
+ "id": 14834,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 14832,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2286:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "2278:24:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 14833,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2297:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14839,
+ "mutability": "mutable",
+ "name": "_nullifiersToRevocationNonce",
+ "nameLocation": "2382:28:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2329:81:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ },
+ "typeName": {
+ "id": 14838,
+ "keyName": "nullifier",
+ "keyNameLocation": "2345:9:38",
+ "keyType": {
+ "id": 14836,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2337:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "2329:52:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ },
+ "valueName": "revocationNonce",
+ "valueNameLocation": "2365:15:38",
+ "valueType": {
+ "id": 14837,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "2358:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14843,
+ "mutability": "mutable",
+ "name": "qrVersions",
+ "nameLocation": "2455:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14844,
+ "src": "2420:45:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ },
+ "typeName": {
+ "id": 14842,
+ "keyName": "qrVersion",
+ "keyNameLocation": "2436:9:38",
+ "keyType": {
+ "id": 14840,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2428:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "2420:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 14841,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2449:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocation": "2032:34:38",
+ "nodeType": "StructDefinition",
+ "scope": 15972,
+ "src": "2025:447:38",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 14847,
+ "mutability": "constant",
+ "name": "AnonAadhaarCredentialIssuerStorageLocation",
+ "nameLocation": "2681:42:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15972,
+ "src": "2656:144:38",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 14845,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2656:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307834353034353637356633656665326563306363666164386161346336373831373964336532306239356133346164396439383166616236663935626131653030",
+ "id": 14846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2734:66:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_31217250670693648802655756854361221883671669064849743043784754571967488204288_by_1",
+ "typeString": "int_const 3121...(69 digits omitted)...4288"
+ },
+ "value": "0x45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e00"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 14854,
+ "nodeType": "Block",
+ "src": "2957:105:38",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "2976:80:38",
+ "nodeType": "YulBlock",
+ "src": "2976:80:38",
+ "statements": [
+ {
+ "nativeSrc": "2990:56:38",
+ "nodeType": "YulAssignment",
+ "src": "2990:56:38",
+ "value": {
+ "name": "AnonAadhaarCredentialIssuerStorageLocation",
+ "nativeSrc": "3004:42:38",
+ "nodeType": "YulIdentifier",
+ "src": "3004:42:38"
+ },
+ "variableNames": [
+ {
+ "name": "store.slot",
+ "nativeSrc": "2990:10:38",
+ "nodeType": "YulIdentifier",
+ "src": "2990:10:38"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 14847,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3004:42:38",
+ "valueSize": 1
+ },
+ {
+ "declaration": 14851,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "2990:10:38",
+ "suffix": "slot",
+ "valueSize": 1
+ }
+ ],
+ "id": 14853,
+ "nodeType": "InlineAssembly",
+ "src": "2967:89:38"
+ }
+ ]
+ },
+ "id": 14855,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nameLocation": "2816:38:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14848,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2854:2:38"
+ },
+ "returnParameters": {
+ "id": 14852,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14851,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "2946:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14855,
+ "src": "2903:48:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 14850,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14849,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "2903:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "2903:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "2903:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2902:50:38"
+ },
+ "scope": 15972,
+ "src": "2807:255:38",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 14862,
+ "nodeType": "Block",
+ "src": "3228:39:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14859,
+ "name": "_disableInitializers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5190,
+ "src": "3238:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
+ "typeString": "function ()"
+ }
+ },
+ "id": 14860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3238:22:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14861,
+ "nodeType": "ExpressionStatement",
+ "src": "3238:22:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 14856,
+ "nodeType": "StructuredDocumentation",
+ "src": "3068:141:38",
+ "text": " @notice Constructor that disables initializers.\n @dev Prevents direct initialization of the implementation contract."
+ },
+ "id": 14863,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14857,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3225:2:38"
+ },
+ "returnParameters": {
+ "id": 14858,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3228:0:38"
+ },
+ "scope": 15972,
+ "src": "3214:53:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 14961,
+ "nodeType": "Block",
+ "src": "3599:706:38",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 14892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 14887,
+ "name": "anonAadhaarVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14877,
+ "src": "3613:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 14890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3644: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": 14889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3636:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 14888,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3636:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 14891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3636:10:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3613:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 14896,
+ "nodeType": "IfStatement",
+ "src": "3609:70:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14893,
+ "name": "InvalidVerifierAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14749,
+ "src": "3655:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 14894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3655:24:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 14895,
+ "nodeType": "RevertStatement",
+ "src": "3648:31:38"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 14903,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 14897,
+ "name": "stateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14880,
+ "src": "3693:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata"
+ }
+ },
+ "id": 14898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3703:12:38",
+ "memberName": "stateAddress",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14810,
+ "src": "3693:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 14901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3727: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": 14900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3719:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 14899,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3719:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 14902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3719:10:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3693:36:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 14907,
+ "nodeType": "IfStatement",
+ "src": "3689:78:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14904,
+ "name": "InvalidStateContractAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14751,
+ "src": "3738:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 14905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3738:29:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 14906,
+ "nodeType": "RevertStatement",
+ "src": "3731:36:38"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 14911,
+ "name": "stateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14880,
+ "src": "3795:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata"
+ }
+ },
+ "id": 14912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3805:12:38",
+ "memberName": "stateAddress",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14810,
+ "src": "3795:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 14913,
+ "name": "stateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14880,
+ "src": "3819:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata"
+ }
+ },
+ "id": 14914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3829:6:38",
+ "memberName": "idType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14812,
+ "src": "3819:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ ],
+ "expression": {
+ "id": 14908,
+ "name": "super",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -25,
+ "src": "3778:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_super$_AnonAadhaarCredentialIssuer_$15972_$",
+ "typeString": "type(contract super AnonAadhaarCredentialIssuer)"
+ }
+ },
+ "id": 14910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3784:10:38",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 887,
+ "src": "3778:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes2_$returns$__$",
+ "typeString": "function (address,bytes2)"
+ }
+ },
+ "id": 14915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3778:58:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14916,
+ "nodeType": "ExpressionStatement",
+ "src": "3778:58:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 14918,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14882,
+ "src": "3861:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 14917,
+ "name": "__Ownable_init",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4828,
+ "src": "3846:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 14919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3846:21:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14920,
+ "nodeType": "ExpressionStatement",
+ "src": "3846:21:38"
+ },
+ {
+ "assignments": [
+ 14923
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14923,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "3921:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14961,
+ "src": "3878:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 14922,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14921,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "3878:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "3878:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "3878:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14926,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14924,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "3925:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 14925,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3925:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3878:87:38"
+ },
+ {
+ "expression": {
+ "id": 14931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 14927,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14923,
+ "src": "3975:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14929,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "3977:13:38",
+ "memberName": "nullifierSeed",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14821,
+ "src": "3975:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14930,
+ "name": "nullifierSeed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14865,
+ "src": "3993:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3975:31:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14932,
+ "nodeType": "ExpressionStatement",
+ "src": "3975:31:38"
+ },
+ {
+ "expression": {
+ "id": 14937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 14933,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14923,
+ "src": "4016:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14935,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4018:14:38",
+ "memberName": "expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14823,
+ "src": "4016:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14936,
+ "name": "expirationTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14873,
+ "src": "4035:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4016:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14938,
+ "nodeType": "ExpressionStatement",
+ "src": "4016:33:38"
+ },
+ {
+ "expression": {
+ "id": 14943,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 14939,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14923,
+ "src": "4059:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14941,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4061:12:38",
+ "memberName": "templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14825,
+ "src": "4059:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14942,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14875,
+ "src": "4076:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4059:29:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14944,
+ "nodeType": "ExpressionStatement",
+ "src": "4059:29:38"
+ },
+ {
+ "expression": {
+ "id": 14951,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 14945,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14923,
+ "src": "4142:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14948,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4144:21:38",
+ "memberName": "_anonAadhaarVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14831,
+ "src": "4142:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 14949,
+ "indexExpression": {
+ "id": 14947,
+ "name": "defaultCircuitId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14808,
+ "src": "4166:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "4142:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14950,
+ "name": "anonAadhaarVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14877,
+ "src": "4186:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "4142:63:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 14952,
+ "nodeType": "ExpressionStatement",
+ "src": "4142:63:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 14954,
+ "name": "publicKeysHashes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14868,
+ "src": "4241:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ ],
+ "id": 14953,
+ "name": "_addPublicKeyHashesBatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15566,
+ "src": "4216:24:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (uint256[] calldata)"
+ }
+ },
+ "id": 14955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4216:42:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14956,
+ "nodeType": "ExpressionStatement",
+ "src": "4216:42:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 14958,
+ "name": "qrVersions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14871,
+ "src": "4287:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ ],
+ "id": 14957,
+ "name": "_addQrVersionBatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15971,
+ "src": "4268:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (uint256[] calldata)"
+ }
+ },
+ "id": 14959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4268:30:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 14960,
+ "nodeType": "ExpressionStatement",
+ "src": "4268:30:38"
+ }
+ ]
+ },
+ "functionSelector": "345f83ff",
+ "id": 14962,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 14885,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 14884,
+ "name": "initializer",
+ "nameLocations": [
+ "3587:11:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5076,
+ "src": "3587:11:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3587:11:38"
+ }
+ ],
+ "name": "initializeIssuer",
+ "nameLocation": "3282:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14883,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14865,
+ "mutability": "mutable",
+ "name": "nullifierSeed",
+ "nameLocation": "3316:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3308:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14864,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3308:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14868,
+ "mutability": "mutable",
+ "name": "publicKeysHashes",
+ "nameLocation": "3358:16:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3339:35:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14866,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3339:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14867,
+ "nodeType": "ArrayTypeName",
+ "src": "3339:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14871,
+ "mutability": "mutable",
+ "name": "qrVersions",
+ "nameLocation": "3403:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3384:29:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 14869,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3384:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14870,
+ "nodeType": "ArrayTypeName",
+ "src": "3384:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14873,
+ "mutability": "mutable",
+ "name": "expirationTime",
+ "nameLocation": "3431:14:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3423:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14872,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3423:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14875,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "3463:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3455:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14874,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3455:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14877,
+ "mutability": "mutable",
+ "name": "anonAadhaarVerifier",
+ "nameLocation": "3493:19:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3485:27:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 14876,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3485:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14880,
+ "mutability": "mutable",
+ "name": "stateInfo",
+ "nameLocation": "3541:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3522:28:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo"
+ },
+ "typeName": {
+ "id": 14879,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14878,
+ "name": "StateInfo",
+ "nameLocations": [
+ "3522:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14813,
+ "src": "3522:9:38"
+ },
+ "referencedDeclaration": 14813,
+ "src": "3522:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$14813_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 14882,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3568:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14962,
+ "src": "3560:13:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 14881,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3560:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3298:281:38"
+ },
+ "returnParameters": {
+ "id": 14886,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3599:0:38"
+ },
+ "scope": 15972,
+ "src": "3273:1032:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 14981,
+ "nodeType": "Block",
+ "src": "4379:145:38",
+ "statements": [
+ {
+ "assignments": [
+ 14971
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14971,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "4432:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14981,
+ "src": "4389:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 14970,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14969,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "4389:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "4389:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "4389:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14974,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14972,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "4436:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 14973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4436:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4389:87:38"
+ },
+ {
+ "expression": {
+ "id": 14979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 14975,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14971,
+ "src": "4486:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14977,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4488:13:38",
+ "memberName": "nullifierSeed",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14821,
+ "src": "4486:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14978,
+ "name": "nullifierSeed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14964,
+ "src": "4504:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4486:31:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 14980,
+ "nodeType": "ExpressionStatement",
+ "src": "4486:31:38"
+ }
+ ]
+ },
+ "functionSelector": "13364fc8",
+ "id": 14982,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 14967,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 14966,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "4369:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "4369:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "4369:9:38"
+ }
+ ],
+ "name": "setNullifierSeed",
+ "nameLocation": "4320:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14965,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14964,
+ "mutability": "mutable",
+ "name": "nullifierSeed",
+ "nameLocation": "4345:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 14982,
+ "src": "4337:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14963,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4337:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4336:23:38"
+ },
+ "returnParameters": {
+ "id": 14968,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4379:0:38"
+ },
+ "scope": 15972,
+ "src": "4311:213:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 15006,
+ "nodeType": "Block",
+ "src": "4709:195:38",
+ "statements": [
+ {
+ "assignments": [
+ 14992
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 14992,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "4762:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15006,
+ "src": "4719:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 14991,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 14990,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "4719:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "4719:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "4719:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 14995,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 14993,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "4766:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 14994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4766:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4719:87:38"
+ },
+ {
+ "expression": {
+ "id": 15000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 14996,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14992,
+ "src": "4816:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 14998,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "4818:13:38",
+ "memberName": "issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14827,
+ "src": "4816:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 14999,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14985,
+ "src": "4834:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4816:31:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15001,
+ "nodeType": "ExpressionStatement",
+ "src": "4816:31:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 15003,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14985,
+ "src": "4883:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15002,
+ "name": "IssuerDidHashUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14773,
+ "src": "4862:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 15004,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4862:35:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15005,
+ "nodeType": "EmitStatement",
+ "src": "4857:40:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 14983,
+ "nodeType": "StructuredDocumentation",
+ "src": "4530:108:38",
+ "text": " @notice Updates the issuer DID hash.\n @param issuerDidHash The new issuer DID hash."
+ },
+ "functionSelector": "4c240f34",
+ "id": 15007,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 14988,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 14987,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "4699:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "4699:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "4699:9:38"
+ }
+ ],
+ "name": "setIssuerDidHash",
+ "nameLocation": "4652:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 14986,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14985,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "4677:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15007,
+ "src": "4669:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 14984,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4669:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4668:23:38"
+ },
+ "returnParameters": {
+ "id": 14989,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4709:0:38"
+ },
+ "scope": 15972,
+ "src": "4643:261:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15027,
+ "nodeType": "Block",
+ "src": "4983:167:38",
+ "statements": [
+ {
+ "assignments": [
+ 15016
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15016,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "5036:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15027,
+ "src": "4993:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15015,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15014,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "4993:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "4993:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "4993:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15019,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15017,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "5040:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5040:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4993:87:38"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 15025,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 15020,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15016,
+ "src": "5097:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15021,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5099:28:38",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14839,
+ "src": "5097:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 15023,
+ "indexExpression": {
+ "id": 15022,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15009,
+ "src": "5128:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5097:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5142:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5097:46:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 15013,
+ "id": 15026,
+ "nodeType": "Return",
+ "src": "5090:53:38"
+ }
+ ]
+ },
+ "functionSelector": "2afab62f",
+ "id": 15028,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "nullifierExists",
+ "nameLocation": "4919:15:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15010,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15009,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "4943:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15028,
+ "src": "4935:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15008,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4935:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4934:19:38"
+ },
+ "returnParameters": {
+ "id": 15013,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15012,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15028,
+ "src": "4977:4:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 15011,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4977:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4976:6:38"
+ },
+ "scope": 15972,
+ "src": "4910:240:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 15052,
+ "nodeType": "Block",
+ "src": "5328:191:38",
+ "statements": [
+ {
+ "assignments": [
+ 15038
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15038,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "5381:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15052,
+ "src": "5338:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15037,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15036,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "5338:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "5338:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "5338:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15041,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15039,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "5385:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5385:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5338:87:38"
+ },
+ {
+ "expression": {
+ "id": 15046,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 15042,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15038,
+ "src": "5435:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15044,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "5437:12:38",
+ "memberName": "templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14825,
+ "src": "5435:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 15045,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15031,
+ "src": "5452:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5435:29:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15047,
+ "nodeType": "ExpressionStatement",
+ "src": "5435:29:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 15049,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15031,
+ "src": "5499:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15048,
+ "name": "TemplateRootUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14777,
+ "src": "5479:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 15050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5479:33:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15051,
+ "nodeType": "EmitStatement",
+ "src": "5474:38:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15029,
+ "nodeType": "StructuredDocumentation",
+ "src": "5156:103:38",
+ "text": " @notice Updates the template root.\n @param templateRoot The new template root."
+ },
+ "functionSelector": "b354c2d8",
+ "id": 15053,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15034,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15033,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "5318:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "5318:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "5318:9:38"
+ }
+ ],
+ "name": "setTemplateRoot",
+ "nameLocation": "5273:15:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15032,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15031,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "5297:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15053,
+ "src": "5289:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15030,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5289:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5288:22:38"
+ },
+ "returnParameters": {
+ "id": 15035,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5328:0:38"
+ },
+ "scope": 15972,
+ "src": "5264:255:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15098,
+ "nodeType": "Block",
+ "src": "5706:370:38",
+ "statements": [
+ {
+ "assignments": [
+ 15063
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15063,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "5759:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15098,
+ "src": "5716:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15062,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15061,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "5716:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "5716:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "5716:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15066,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15064,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "5763:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15065,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5763:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5716:87:38"
+ },
+ {
+ "assignments": [
+ 15068
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15068,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "5820:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15098,
+ "src": "5813:12:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 15067,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "5813:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15073,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15069,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15063,
+ "src": "5828:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15070,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5830:28:38",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14839,
+ "src": "5828:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 15072,
+ "indexExpression": {
+ "id": 15071,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15056,
+ "src": "5859:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5828:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5813:56:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 15076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15074,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15068,
+ "src": "5883:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5892:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5883:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15080,
+ "nodeType": "IfStatement",
+ "src": "5879:46:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15077,
+ "name": "NullifierDoesNotExist",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14747,
+ "src": "5902:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5902:23:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15079,
+ "nodeType": "RevertStatement",
+ "src": "5895:30:38"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15082,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15068,
+ "src": "5958:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 15081,
+ "name": "_revokeClaimAndTransit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15524,
+ "src": "5935:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$",
+ "typeString": "function (uint64)"
+ }
+ },
+ "id": 15083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5935:29:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15084,
+ "nodeType": "ExpressionStatement",
+ "src": "5935:29:38"
+ },
+ {
+ "expression": {
+ "id": 15091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15085,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15063,
+ "src": "5974:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15088,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5976:28:38",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14839,
+ "src": "5974:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 15089,
+ "indexExpression": {
+ "id": 15087,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15056,
+ "src": "6005:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "5974:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 15090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6018:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5974:45:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 15092,
+ "nodeType": "ExpressionStatement",
+ "src": "5974:45:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 15094,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15056,
+ "src": "6052:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15095,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15068,
+ "src": "6063:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 15093,
+ "name": "CredentialRevoked",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14787,
+ "src": "6034:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 15096,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6034:35:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15097,
+ "nodeType": "EmitStatement",
+ "src": "6029:40:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15054,
+ "nodeType": "StructuredDocumentation",
+ "src": "5525:112:38",
+ "text": " @notice Revoke credential and remove nullifier.\n @param nullifier credential nullifier."
+ },
+ "functionSelector": "1b87278d",
+ "id": 15099,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15059,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15058,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "5696:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "5696:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "5696:9:38"
+ }
+ ],
+ "name": "revokeCredential",
+ "nameLocation": "5651:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15057,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15056,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "5676:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15099,
+ "src": "5668:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15055,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5668:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5667:19:38"
+ },
+ "returnParameters": {
+ "id": 15060,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5706:0:38"
+ },
+ "scope": 15972,
+ "src": "5642:434:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 15125,
+ "nodeType": "Block",
+ "src": "6259:202:38",
+ "statements": [
+ {
+ "assignments": [
+ 15109
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15109,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "6312:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15125,
+ "src": "6269:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15108,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15107,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "6269:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "6269:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "6269:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15112,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15110,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "6316:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6316:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6269:87:38"
+ },
+ {
+ "expression": {
+ "id": 15119,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15113,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15109,
+ "src": "6366:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15116,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6368:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "6366:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15117,
+ "indexExpression": {
+ "id": 15115,
+ "name": "publicKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15102,
+ "src": "6385:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6366:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 15118,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6402:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "6366:40:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15120,
+ "nodeType": "ExpressionStatement",
+ "src": "6366:40:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 15122,
+ "name": "publicKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15102,
+ "src": "6440:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15121,
+ "name": "PublicKeyHashAdded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14781,
+ "src": "6421:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 15123,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6421:33:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15124,
+ "nodeType": "EmitStatement",
+ "src": "6416:38:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15100,
+ "nodeType": "StructuredDocumentation",
+ "src": "6082:106:38",
+ "text": " @notice Adds a public key hash.\n @param publicKeyHash The public key hash to add."
+ },
+ "functionSelector": "035dfdfe",
+ "id": 15126,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15105,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15104,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "6249:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "6249:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "6249:9:38"
+ }
+ ],
+ "name": "addPublicKeyHash",
+ "nameLocation": "6202:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15103,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15102,
+ "mutability": "mutable",
+ "name": "publicKeyHash",
+ "nameLocation": "6227:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15126,
+ "src": "6219:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15101,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6219:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6218:23:38"
+ },
+ "returnParameters": {
+ "id": 15106,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6259:0:38"
+ },
+ "scope": 15972,
+ "src": "6193:268:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15139,
+ "nodeType": "Block",
+ "src": "6699:59:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15136,
+ "name": "publicKeysHashes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15130,
+ "src": "6734:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ ],
+ "id": 15135,
+ "name": "_addPublicKeyHashesBatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15566,
+ "src": "6709:24:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (uint256[] calldata)"
+ }
+ },
+ "id": 15137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6709:42:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15138,
+ "nodeType": "ExpressionStatement",
+ "src": "6709:42:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15127,
+ "nodeType": "StructuredDocumentation",
+ "src": "6467:140:38",
+ "text": " @notice Adds multiple public key hashes in a batch.\n @param publicKeysHashes The array of public key hashes to add."
+ },
+ "functionSelector": "552c9b7e",
+ "id": 15140,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15133,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15132,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "6689:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "6689:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "6689:9:38"
+ }
+ ],
+ "name": "addPublicKeyHashesBatch",
+ "nameLocation": "6621:23:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15131,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15130,
+ "mutability": "mutable",
+ "name": "publicKeysHashes",
+ "nameLocation": "6664:16:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15140,
+ "src": "6645:35:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15128,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6645:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15129,
+ "nodeType": "ArrayTypeName",
+ "src": "6645:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6644:37:38"
+ },
+ "returnParameters": {
+ "id": 15134,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6699:0:38"
+ },
+ "scope": 15972,
+ "src": "6612:146:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15172,
+ "nodeType": "Block",
+ "src": "6950:255:38",
+ "statements": [
+ {
+ "assignments": [
+ 15150
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15150,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "7003:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15172,
+ "src": "6960:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15149,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15148,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "6960:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "6960:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "6960:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15153,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15151,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "7007:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15152,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7007:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6960:87:38"
+ },
+ {
+ "condition": {
+ "id": 15158,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "7061:34:38",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 15154,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15150,
+ "src": "7062:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15155,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7064:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "7062:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15157,
+ "indexExpression": {
+ "id": 15156,
+ "name": "publicKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15143,
+ "src": "7081:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "7062:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15163,
+ "nodeType": "IfStatement",
+ "src": "7057:91:38",
+ "trueBody": {
+ "id": 15162,
+ "nodeType": "Block",
+ "src": "7097:51:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15159,
+ "name": "InvalidPubKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14745,
+ "src": "7118:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7118:19:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15161,
+ "nodeType": "RevertStatement",
+ "src": "7111:26:38"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 15170,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15164,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15150,
+ "src": "7157:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15167,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7159:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "7157:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15168,
+ "indexExpression": {
+ "id": 15166,
+ "name": "publicKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15143,
+ "src": "7176:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "7157:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 15169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7193:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "7157:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15171,
+ "nodeType": "ExpressionStatement",
+ "src": "7157:41:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15141,
+ "nodeType": "StructuredDocumentation",
+ "src": "6764:112:38",
+ "text": " @notice Removes a public key hash.\n @param publicKeyHash The public key hash to remove."
+ },
+ "functionSelector": "f221b845",
+ "id": 15173,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15146,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15145,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "6940:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "6940:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "6940:9:38"
+ }
+ ],
+ "name": "removePublicKeyHash",
+ "nameLocation": "6890:19:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15144,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15143,
+ "mutability": "mutable",
+ "name": "publicKeyHash",
+ "nameLocation": "6918:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15173,
+ "src": "6910:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15142,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6910:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6909:23:38"
+ },
+ "returnParameters": {
+ "id": 15147,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6950:0:38"
+ },
+ "scope": 15972,
+ "src": "6881:324:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15190,
+ "nodeType": "Block",
+ "src": "7607:75:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15186,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15177,
+ "src": "7645:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ {
+ "id": 15187,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15180,
+ "src": "7657:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ ],
+ "id": 15185,
+ "name": "_updateAnonAadhaarVerifiers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15630,
+ "src": "7617:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (string calldata[] calldata,address[] calldata)"
+ }
+ },
+ "id": 15188,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7617:58:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15189,
+ "nodeType": "ExpressionStatement",
+ "src": "7617:58:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15174,
+ "nodeType": "StructuredDocumentation",
+ "src": "7211:240:38",
+ "text": " @dev Updates the AnonAadhar circuit verifiers for a specific circuit identifiers.\n @param circuitIds The AnonAadhar circuit identifiers.\n @param verifierAddresses The new AnonAadhar circuit verifier addresses."
+ },
+ "functionSelector": "f8ba8b39",
+ "id": 15191,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15183,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15182,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "7597:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "7597:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "7597:9:38"
+ }
+ ],
+ "name": "updateAnonAadhaarVerifiers",
+ "nameLocation": "7465:26:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15181,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15177,
+ "mutability": "mutable",
+ "name": "circuitIds",
+ "nameLocation": "7519:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15191,
+ "src": "7501:28:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15175,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7501:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 15176,
+ "nodeType": "ArrayTypeName",
+ "src": "7501:8:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15180,
+ "mutability": "mutable",
+ "name": "verifierAddresses",
+ "nameLocation": "7558:17:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15191,
+ "src": "7539:36:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15178,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7539:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 15179,
+ "nodeType": "ArrayTypeName",
+ "src": "7539:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7491:90:38"
+ },
+ "returnParameters": {
+ "id": 15184,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7607:0:38"
+ },
+ "scope": 15972,
+ "src": "7456:226:38",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15205,
+ "nodeType": "Block",
+ "src": "7981:97:38",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15199,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "7998:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7998:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15201,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8039:21:38",
+ "memberName": "_anonAadhaarVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14831,
+ "src": "7998:62:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 15203,
+ "indexExpression": {
+ "id": 15202,
+ "name": "circuitId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15194,
+ "src": "8061:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "7998:73:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 15198,
+ "id": 15204,
+ "nodeType": "Return",
+ "src": "7991:80:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15192,
+ "nodeType": "StructuredDocumentation",
+ "src": "7688:193:38",
+ "text": " @notice Retrieves the anonAadhaar verifier address for a given circuit id.\n @param circuitId The circuit id identifier.\n @return The anonAadhaar verifier address."
+ },
+ "functionSelector": "ad5778c7",
+ "id": 15206,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "anonAadhaarVerifiers",
+ "nameLocation": "7895:20:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15195,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15194,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "7930:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15206,
+ "src": "7916:23:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 15193,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7916:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7915:25:38"
+ },
+ "returnParameters": {
+ "id": 15198,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15197,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15206,
+ "src": "7972:7:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 15196,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7972:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7971:9:38"
+ },
+ "scope": 15972,
+ "src": "7886:192:38",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 15370,
+ "nodeType": "Block",
+ "src": "8453:1633:38",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 15217,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15210,
+ "src": "8473:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 15218,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8489:9:38",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14815,
+ "src": "8473:25:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 15216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8467:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 15215,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "8467:5:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8467:32:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 15220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8500:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "8467:39:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8510:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "8467:44:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15229,
+ "nodeType": "IfStatement",
+ "src": "8463:136:38",
+ "trueBody": {
+ "id": 15228,
+ "nodeType": "Block",
+ "src": "8513:86:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 15224,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15210,
+ "src": "8562:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 15225,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8578:9:38",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14815,
+ "src": "8562:25:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 15223,
+ "name": "NoAnonAadhaarCircuitIdFound",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14769,
+ "src": "8534:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$",
+ "typeString": "function (string memory) pure returns (error)"
+ }
+ },
+ "id": 15226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8534:54:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15227,
+ "nodeType": "RevertStatement",
+ "src": "8527:61:38"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 15234,
+ 15238,
+ 15244,
+ 15248
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15234,
+ "mutability": "mutable",
+ "name": "inputs",
+ "nameLocation": "8640:6:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "8623:23:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15232,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8623:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15233,
+ "nodeType": "ArrayTypeName",
+ "src": "8623:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15238,
+ "mutability": "mutable",
+ "name": "a1",
+ "nameLocation": "8678:2:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "8660:20:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15235,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8660:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15237,
+ "length": {
+ "hexValue": "32",
+ "id": 15236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8668:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "8660:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15244,
+ "mutability": "mutable",
+ "name": "b1",
+ "nameLocation": "8715:2:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "8694:23:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 15239,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8694:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15241,
+ "length": {
+ "hexValue": "32",
+ "id": 15240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8702:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "8694:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 15243,
+ "length": {
+ "hexValue": "32",
+ "id": 15242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8705:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "8694:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15248,
+ "mutability": "mutable",
+ "name": "c1",
+ "nameLocation": "8749:2:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "8731:20:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15245,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8731:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15247,
+ "length": {
+ "hexValue": "32",
+ "id": 15246,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8739:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "8731:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15272,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 15251,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15210,
+ "src": "8775:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 15252,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8791:5:38",
+ "memberName": "proof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14817,
+ "src": "8775:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 15254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8799:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 15253,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8799:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15255,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "8799:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "type(uint256[] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8810:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 15256,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8810:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15259,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8818:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "8810:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 15261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8822:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 15260,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8822:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15263,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15262,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8830:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "8822:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ },
+ "id": 15265,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15264,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8833:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "8822:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory[2] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15267,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8837:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 15266,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8837:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15269,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8845:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "8837:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ }
+ ],
+ "id": 15270,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "8798:50:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$",
+ "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$",
+ "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))"
+ }
+ ],
+ "expression": {
+ "id": 15249,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "8764:3:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 15250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "8768:6:38",
+ "memberName": "decode",
+ "nodeType": "MemberAccess",
+ "src": "8764:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 15271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8764:85:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "tuple(uint256[] memory,uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8609:240:38"
+ },
+ {
+ "assignments": [
+ 15277
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15277,
+ "mutability": "mutable",
+ "name": "groth16Proof",
+ "nameLocation": "8931:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "8860:83:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof"
+ },
+ "typeName": {
+ "id": 15276,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15275,
+ "name": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof",
+ "nameLocations": [
+ "8860:27:38",
+ "8888:23:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14528,
+ "src": "8860:51:38"
+ },
+ "referencedDeclaration": 14528,
+ "src": "8860:51:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15321,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 15280,
+ "name": "a1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15238,
+ "src": "9015:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "id": 15281,
+ "name": "b1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15244,
+ "src": "9035:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ }
+ },
+ {
+ "id": 15282,
+ "name": "c1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15248,
+ "src": "9055:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 15283,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9097:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15285,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 15284,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9104:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9097:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15286,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9128:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15288,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 15287,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9135:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9128:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15289,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9159:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15291,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9166:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9159:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15292,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9190:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15294,
+ "indexExpression": {
+ "hexValue": "33",
+ "id": 15293,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9197:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9190:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15295,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9221:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15297,
+ "indexExpression": {
+ "hexValue": "34",
+ "id": 15296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9228:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9221:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15298,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9252:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15300,
+ "indexExpression": {
+ "hexValue": "35",
+ "id": 15299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9259:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9252:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15301,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9283:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15303,
+ "indexExpression": {
+ "hexValue": "36",
+ "id": 15302,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9290:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9283:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15304,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9314:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15306,
+ "indexExpression": {
+ "hexValue": "37",
+ "id": 15305,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9321:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9314:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15307,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9345:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15309,
+ "indexExpression": {
+ "hexValue": "38",
+ "id": 15308,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9352:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9345:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15310,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9376:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15312,
+ "indexExpression": {
+ "hexValue": "39",
+ "id": 15311,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9383:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9_by_1",
+ "typeString": "int_const 9"
+ },
+ "value": "9"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9376:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15313,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9407:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15315,
+ "indexExpression": {
+ "hexValue": "3130",
+ "id": 15314,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9414:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9407:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15316,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15234,
+ "src": "9439:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 15318,
+ "indexExpression": {
+ "hexValue": "3131",
+ "id": 15317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9446:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11_by_1",
+ "typeString": "int_const 11"
+ },
+ "value": "11"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9439:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 15319,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "9075:392:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ ],
+ "expression": {
+ "id": 15278,
+ "name": "IAnonAadhaarCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14553,
+ "src": "8946:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IAnonAadhaarCircuitVerifier_$14553_$",
+ "typeString": "type(contract IAnonAadhaarCircuitVerifier)"
+ }
+ },
+ "id": 15279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8974:23:38",
+ "memberName": "AnonAadhaarCircuitProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14528,
+ "src": "8946:51:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr_$",
+ "typeString": "type(struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof storage pointer)"
+ }
+ },
+ "id": 15320,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8946:535:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8860:621:38"
+ },
+ {
+ "assignments": [
+ 15324
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15324,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "9535:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "9492:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15323,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15322,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "9492:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "9492:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "9492:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15327,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15325,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "9539:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9539:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9492:87:38"
+ },
+ {
+ "assignments": [
+ 15329
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15329,
+ "mutability": "mutable",
+ "name": "verifier",
+ "nameLocation": "9597:8:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15370,
+ "src": "9589:16:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 15328,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9589:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15335,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15330,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15324,
+ "src": "9608:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15331,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9610:21:38",
+ "memberName": "_anonAadhaarVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14831,
+ "src": "9608:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 15334,
+ "indexExpression": {
+ "expression": {
+ "id": 15332,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15210,
+ "src": "9632:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 15333,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9648:9:38",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14815,
+ "src": "9632:25:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "9608:50:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9589:69:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 15341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15336,
+ "name": "verifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15329,
+ "src": "9672:8:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 15339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9692: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": 15338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9684:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 15337,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9684:7:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15340,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9684:10:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9672:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15346,
+ "nodeType": "IfStatement",
+ "src": "9668:75:38",
+ "trueBody": {
+ "id": 15345,
+ "nodeType": "Block",
+ "src": "9696:47:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15342,
+ "name": "NoVerifierSet",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14723,
+ "src": "9717:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15343,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9717:15:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15344,
+ "nodeType": "RevertStatement",
+ "src": "9710:22:38"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "id": 15360,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "9769:201:38",
+ "subExpression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 15351,
+ "name": "groth16Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15277,
+ "src": "9837:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15352,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9850:1:38",
+ "memberName": "a",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14513,
+ "src": "9837:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 15353,
+ "name": "groth16Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15277,
+ "src": "9869:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15354,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9882:1:38",
+ "memberName": "b",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14519,
+ "src": "9869:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 15355,
+ "name": "groth16Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15277,
+ "src": "9901:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15356,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9914:1:38",
+ "memberName": "c",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14523,
+ "src": "9901:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 15357,
+ "name": "groth16Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15277,
+ "src": "9933:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15358,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9946:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "9933:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 15348,
+ "name": "verifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15329,
+ "src": "9798:8:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 15347,
+ "name": "IAnonAadhaarCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14553,
+ "src": "9770:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IAnonAadhaarCircuitVerifier_$14553_$",
+ "typeString": "type(contract IAnonAadhaarCircuitVerifier)"
+ }
+ },
+ "id": 15349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9770:37:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAnonAadhaarCircuitVerifier_$14553",
+ "typeString": "contract IAnonAadhaarCircuitVerifier"
+ }
+ },
+ "id": 15350,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9808:11:38",
+ "memberName": "verifyProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14552,
+ "src": "9770:49:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$12_memory_ptr_$returns$_t_bool_$",
+ "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[12] memory) view external returns (bool)"
+ }
+ },
+ "id": 15359,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9770:200:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15365,
+ "nodeType": "IfStatement",
+ "src": "9752:286:38",
+ "trueBody": {
+ "id": 15364,
+ "nodeType": "Block",
+ "src": "9981:57:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15361,
+ "name": "InvalidAnonAadhaarProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14725,
+ "src": "10002:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10002:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15363,
+ "nodeType": "RevertStatement",
+ "src": "9995:32:38"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15367,
+ "name": "groth16Proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15277,
+ "src": "10066:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ ],
+ "id": 15366,
+ "name": "_afterProofSubmit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15747,
+ "src": "10048:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr_$returns$__$",
+ "typeString": "function (struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory)"
+ }
+ },
+ "id": 15368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10048:31:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15369,
+ "nodeType": "ExpressionStatement",
+ "src": "10048:31:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15207,
+ "nodeType": "StructuredDocumentation",
+ "src": "8084:233:38",
+ "text": " @notice Verifies the passport credential.\n @param credentialProof Credential proof for the passport credential\n @param passportSignatureProof Signature proof of the validation of the passport credential"
+ },
+ "functionSelector": "43e5c520",
+ "id": 15371,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyAadhaar",
+ "nameLocation": "8331:13:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15213,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15210,
+ "mutability": "mutable",
+ "name": "credentialProof",
+ "nameLocation": "8377:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15371,
+ "src": "8354:38:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof"
+ },
+ "typeName": {
+ "id": 15209,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15208,
+ "name": "CredentialProof",
+ "nameLocations": [
+ "8354:15:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14818,
+ "src": "8354:15:38"
+ },
+ "referencedDeclaration": 14818,
+ "src": "8354:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$14818_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15212,
+ "mutability": "mutable",
+ "name": "passportSignatureProof",
+ "nameLocation": "8415:22:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15371,
+ "src": "8402:35:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 15211,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "8402:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8344:99:38"
+ },
+ "returnParameters": {
+ "id": 15214,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8453:0:38"
+ },
+ "scope": 15972,
+ "src": "8322:1764:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 15381,
+ "nodeType": "Block",
+ "src": "10244:78:38",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15377,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "10261:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10261:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15379,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10302:13:38",
+ "memberName": "nullifierSeed",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14821,
+ "src": "10261:54:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 15376,
+ "id": 15380,
+ "nodeType": "Return",
+ "src": "10254:61:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15372,
+ "nodeType": "StructuredDocumentation",
+ "src": "10092:89:38",
+ "text": " @notice Returns the nullifier seed.\n @return The nullifier seed."
+ },
+ "functionSelector": "13e52ae7",
+ "id": 15382,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getNullifierSeed",
+ "nameLocation": "10195:16:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15373,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10211:2:38"
+ },
+ "returnParameters": {
+ "id": 15376,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15375,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15382,
+ "src": "10235:7:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15374,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10235:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10234:9:38"
+ },
+ "scope": 15972,
+ "src": "10186:136:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15396,
+ "nodeType": "Block",
+ "src": "10603:96:38",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15390,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "10620:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10620:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15392,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10661:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "10620:57:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15394,
+ "indexExpression": {
+ "id": 15393,
+ "name": "publicKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15385,
+ "src": "10678:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "10620:72:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 15389,
+ "id": 15395,
+ "nodeType": "Return",
+ "src": "10613:79:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15383,
+ "nodeType": "StructuredDocumentation",
+ "src": "10328:191:38",
+ "text": " @notice Returns if the public key hash exists.\n @param publicKeyHash The public key hash to check.\n @return True if the public key hash exists, false otherwise."
+ },
+ "functionSelector": "58ada672",
+ "id": 15397,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "publicKeyHashExists",
+ "nameLocation": "10533:19:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15386,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15385,
+ "mutability": "mutable",
+ "name": "publicKeyHash",
+ "nameLocation": "10561:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15397,
+ "src": "10553:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15384,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10553:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10552:23:38"
+ },
+ "returnParameters": {
+ "id": 15389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15388,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15397,
+ "src": "10597:4:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 15387,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "10597:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10596:6:38"
+ },
+ "scope": 15972,
+ "src": "10524:175:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15407,
+ "nodeType": "Block",
+ "src": "10854:77:38",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15403,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "10871:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15404,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10871:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15405,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10912:12:38",
+ "memberName": "templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14825,
+ "src": "10871:53:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 15402,
+ "id": 15406,
+ "nodeType": "Return",
+ "src": "10864:60:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15398,
+ "nodeType": "StructuredDocumentation",
+ "src": "10705:87:38",
+ "text": " @notice Returns the template root.\n @return The template root."
+ },
+ "functionSelector": "2c1d3204",
+ "id": 15408,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTemplateRoot",
+ "nameLocation": "10806:15:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15399,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10821:2:38"
+ },
+ "returnParameters": {
+ "id": 15402,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15401,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15408,
+ "src": "10845:7:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15400,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10845:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10844:9:38"
+ },
+ "scope": 15972,
+ "src": "10797:134:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15418,
+ "nodeType": "Block",
+ "src": "11092:79:38",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15414,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "11109:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15415,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11109:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15416,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11150:14:38",
+ "memberName": "expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14823,
+ "src": "11109:55:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 15413,
+ "id": 15417,
+ "nodeType": "Return",
+ "src": "11102:62:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15409,
+ "nodeType": "StructuredDocumentation",
+ "src": "10937:91:38",
+ "text": " @notice Returns the expiration time.\n @return The expiration time."
+ },
+ "functionSelector": "e23a845a",
+ "id": 15419,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getExpirationTime",
+ "nameLocation": "11042:17:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15410,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11059:2:38"
+ },
+ "returnParameters": {
+ "id": 15413,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15412,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15419,
+ "src": "11083:7:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15411,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11083:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11082:9:38"
+ },
+ "scope": 15972,
+ "src": "11033:138:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15441,
+ "nodeType": "Block",
+ "src": "11332:144:38",
+ "statements": [
+ {
+ "assignments": [
+ 15429
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15429,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "11385:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15441,
+ "src": "11342:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15428,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15427,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "11342:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "11342:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "11342:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15432,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15430,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "11389:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15431,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11389:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11342:87:38"
+ },
+ {
+ "expression": {
+ "id": 15439,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15433,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15429,
+ "src": "11439:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15436,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11441:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "11439:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15437,
+ "indexExpression": {
+ "id": 15435,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15422,
+ "src": "11452:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "11439:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 15438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "11465:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "11439:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15440,
+ "nodeType": "ExpressionStatement",
+ "src": "11439:30:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15420,
+ "nodeType": "StructuredDocumentation",
+ "src": "11177:92:38",
+ "text": " @notice Adds a QR version.\n @param qrVersion The QR version to add."
+ },
+ "functionSelector": "dcdd17c4",
+ "id": 15442,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15425,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15424,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "11322:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "11322:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11322:9:38"
+ }
+ ],
+ "name": "addQrVersion",
+ "nameLocation": "11283:12:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15423,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15422,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "11304:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15442,
+ "src": "11296:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15421,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11296:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11295:19:38"
+ },
+ "returnParameters": {
+ "id": 15426,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11332:0:38"
+ },
+ "scope": 15972,
+ "src": "11274:202:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15455,
+ "nodeType": "Block",
+ "src": "11684:47:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15452,
+ "name": "qrVersions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15446,
+ "src": "11713:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ ],
+ "id": 15451,
+ "name": "_addQrVersionBatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15971,
+ "src": "11694:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (uint256[] calldata)"
+ }
+ },
+ "id": 15453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11694:30:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15454,
+ "nodeType": "ExpressionStatement",
+ "src": "11694:30:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15443,
+ "nodeType": "StructuredDocumentation",
+ "src": "11482:122:38",
+ "text": " @notice Adds multiple QR versions in a batch.\n @param qrVersions The array of QR versions to add."
+ },
+ "functionSelector": "b5fff0ed",
+ "id": 15456,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15449,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15448,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "11674:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "11674:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11674:9:38"
+ }
+ ],
+ "name": "addQrVersionBatch",
+ "nameLocation": "11618:17:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15447,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15446,
+ "mutability": "mutable",
+ "name": "qrVersions",
+ "nameLocation": "11655:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15456,
+ "src": "11636:29:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15444,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11636:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15445,
+ "nodeType": "ArrayTypeName",
+ "src": "11636:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11635:31:38"
+ },
+ "returnParameters": {
+ "id": 15450,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11684:0:38"
+ },
+ "scope": 15972,
+ "src": "11609:122:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15488,
+ "nodeType": "Block",
+ "src": "11901:223:38",
+ "statements": [
+ {
+ "assignments": [
+ 15466
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15466,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "11954:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15488,
+ "src": "11911:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15465,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15464,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "11911:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "11911:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "11911:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15469,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15467,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "11958:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11958:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "11911:87:38"
+ },
+ {
+ "condition": {
+ "id": 15474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "12012:24:38",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 15470,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15466,
+ "src": "12013:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15471,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12015:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "12013:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15473,
+ "indexExpression": {
+ "id": 15472,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15459,
+ "src": "12026:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12013:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15479,
+ "nodeType": "IfStatement",
+ "src": "12008:68:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 15476,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15459,
+ "src": "12066:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15475,
+ "name": "UnsupportedQrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14755,
+ "src": "12045:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 15477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12045:31:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15478,
+ "nodeType": "RevertStatement",
+ "src": "12038:38:38"
+ }
+ },
+ {
+ "expression": {
+ "id": 15486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15480,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15466,
+ "src": "12086:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15483,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12088:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "12086:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15484,
+ "indexExpression": {
+ "id": 15482,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15459,
+ "src": "12099:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "12086:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 15485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12112:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "12086:31:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15487,
+ "nodeType": "ExpressionStatement",
+ "src": "12086:31:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15457,
+ "nodeType": "StructuredDocumentation",
+ "src": "11737:98:38",
+ "text": " @notice Removes a QR version.\n @param qrVersion The QR version to remove."
+ },
+ "functionSelector": "2e1e252f",
+ "id": 15489,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 15462,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 15461,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "11891:9:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "11891:9:38"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11891:9:38"
+ }
+ ],
+ "name": "removeQrVersion",
+ "nameLocation": "11849:15:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15460,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15459,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "11873:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15489,
+ "src": "11865:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15458,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "11865:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11864:19:38"
+ },
+ "returnParameters": {
+ "id": 15463,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11901:0:38"
+ },
+ "scope": 15972,
+ "src": "11840:284:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15503,
+ "nodeType": "Block",
+ "src": "12390:86:38",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15497,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "12407:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15498,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12407:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15499,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12448:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "12407:51:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15501,
+ "indexExpression": {
+ "id": 15500,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15492,
+ "src": "12459:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12407:62:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 15496,
+ "id": 15502,
+ "nodeType": "Return",
+ "src": "12400:69:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15490,
+ "nodeType": "StructuredDocumentation",
+ "src": "12130:181:38",
+ "text": " @notice Checks if a QR version is supported.\n @param qrVersion The QR version to check.\n @return True if the QR version is supported, false otherwise."
+ },
+ "functionSelector": "efc8385a",
+ "id": 15504,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "qrVersionSupported",
+ "nameLocation": "12325:18:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15493,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15492,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "12352:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15504,
+ "src": "12344:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15491,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12344:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12343:19:38"
+ },
+ "returnParameters": {
+ "id": 15496,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15495,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 15504,
+ "src": "12384:4:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 15494,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12384:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12383:6:38"
+ },
+ "scope": 15972,
+ "src": "12316:160:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 15523,
+ "nodeType": "Block",
+ "src": "12661:129:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15514,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15507,
+ "src": "12718:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15510,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "12671:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 15511,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12671:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 15512,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12697:8:38",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "12671:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 15513,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12706:11:38",
+ "memberName": "revokeClaim",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1614,
+ "src": "12671:46:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64)"
+ }
+ },
+ "id": 15515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12671:53:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15516,
+ "nodeType": "ExpressionStatement",
+ "src": "12671:53:38"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15517,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "12734:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 15518,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12734:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 15519,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12760:8:38",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "12734:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 15520,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12769:12:38",
+ "memberName": "transitState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1778,
+ "src": "12734:47:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer)"
+ }
+ },
+ "id": 15521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12734:49:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15522,
+ "nodeType": "ExpressionStatement",
+ "src": "12734:49:38"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 15505,
+ "nodeType": "StructuredDocumentation",
+ "src": "12482:119:38",
+ "text": " @notice Revokes a claim and transit the state.\n @param nonce The nonce of the claim to revoke."
+ },
+ "id": 15524,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_revokeClaimAndTransit",
+ "nameLocation": "12615:22:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15508,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15507,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "12645:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15524,
+ "src": "12638:12:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 15506,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "12638:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12637:14:38"
+ },
+ "returnParameters": {
+ "id": 15509,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12661:0:38"
+ },
+ "scope": 15972,
+ "src": "12606:184:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15565,
+ "nodeType": "Block",
+ "src": "12876:296:38",
+ "statements": [
+ {
+ "assignments": [
+ 15532
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15532,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "12929:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15565,
+ "src": "12886:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15531,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15530,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "12886:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "12886:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "12886:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15535,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15533,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "12933:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12933:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12886:87:38"
+ },
+ {
+ "body": {
+ "id": 15563,
+ "nodeType": "Block",
+ "src": "13037:129:38",
+ "statements": [
+ {
+ "expression": {
+ "id": 15555,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15547,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15532,
+ "src": "13051:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15552,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13053:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "13051:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15553,
+ "indexExpression": {
+ "baseExpression": {
+ "id": 15549,
+ "name": "publicKeysHashes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15527,
+ "src": "13070:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ },
+ "id": 15551,
+ "indexExpression": {
+ "id": 15550,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15537,
+ "src": "13087:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13070:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "13051:39:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 15554,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13093:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "13051:46:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15556,
+ "nodeType": "ExpressionStatement",
+ "src": "13051:46:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 15558,
+ "name": "publicKeysHashes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15527,
+ "src": "13135:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ },
+ "id": 15560,
+ "indexExpression": {
+ "id": 15559,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15537,
+ "src": "13152:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13135:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15557,
+ "name": "PublicKeyHashAdded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14781,
+ "src": "13116:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 15561,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13116:39:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15562,
+ "nodeType": "EmitStatement",
+ "src": "13111:44:38"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15543,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15540,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15537,
+ "src": "13003:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 15541,
+ "name": "publicKeysHashes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15527,
+ "src": "13007:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ },
+ "id": 15542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13024:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13007:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13003:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15564,
+ "initializationExpression": {
+ "assignments": [
+ 15537
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15537,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "12996:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15564,
+ "src": "12988:9:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15536,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12988:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15539,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 15538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13000:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12988:13:38"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 15545,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "13032:3:38",
+ "subExpression": {
+ "id": 15544,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15537,
+ "src": "13032:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15546,
+ "nodeType": "ExpressionStatement",
+ "src": "13032:3:38"
+ },
+ "nodeType": "ForStatement",
+ "src": "12983:183:38"
+ }
+ ]
+ },
+ "id": 15566,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addPublicKeyHashesBatch",
+ "nameLocation": "12805:24:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15528,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15527,
+ "mutability": "mutable",
+ "name": "publicKeysHashes",
+ "nameLocation": "12849:16:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15566,
+ "src": "12830:35:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15525,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12830:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15526,
+ "nodeType": "ArrayTypeName",
+ "src": "12830:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12829:37:38"
+ },
+ "returnParameters": {
+ "id": 15529,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12876:0:38"
+ },
+ "scope": 15972,
+ "src": "12796:376:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15629,
+ "nodeType": "Block",
+ "src": "13314:488:38",
+ "statements": [
+ {
+ "assignments": [
+ 15577
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15577,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "13367:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15629,
+ "src": "13324:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15576,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15575,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "13324:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "13324:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "13324:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15580,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15578,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "13371:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13371:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13324:87:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 15581,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15569,
+ "src": "13425:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 15582,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13436:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13425:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 15583,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15572,
+ "src": "13446:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 15584,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13464:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13446:24:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13425:45:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15594,
+ "nodeType": "IfStatement",
+ "src": "13421:142:38",
+ "trueBody": {
+ "id": 15593,
+ "nodeType": "Block",
+ "src": "13472:91:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 15587,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15569,
+ "src": "13508:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 15588,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13519:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13508:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 15589,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15572,
+ "src": "13527:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 15590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13545:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13527:24:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15586,
+ "name": "LengthMismatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14765,
+ "src": "13493:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 15591,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13493:59:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15592,
+ "nodeType": "RevertStatement",
+ "src": "13486:66:38"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 15627,
+ "nodeType": "Block",
+ "src": "13620:176:38",
+ "statements": [
+ {
+ "expression": {
+ "id": 15616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15606,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15577,
+ "src": "13634:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15611,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13636:21:38",
+ "memberName": "_anonAadhaarVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14831,
+ "src": "13634:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 15612,
+ "indexExpression": {
+ "baseExpression": {
+ "id": 15608,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15569,
+ "src": "13658:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 15610,
+ "indexExpression": {
+ "id": 15609,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13669:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13658:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "13634:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 15613,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15572,
+ "src": "13675:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 15615,
+ "indexExpression": {
+ "id": 15614,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13693:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13675:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "13634:61:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 15617,
+ "nodeType": "ExpressionStatement",
+ "src": "13634:61:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 15619,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15569,
+ "src": "13749:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 15621,
+ "indexExpression": {
+ "id": 15620,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13760:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13749:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 15622,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15572,
+ "src": "13764:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 15624,
+ "indexExpression": {
+ "id": 15623,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13782:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13764:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 15618,
+ "name": "AnonAadhaarCircuitVerifierUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14793,
+ "src": "13715:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
+ "typeString": "function (string memory,address)"
+ }
+ },
+ "id": 15625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13715:70:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15626,
+ "nodeType": "EmitStatement",
+ "src": "13710:75:38"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15599,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13592:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 15600,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15569,
+ "src": "13596:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 15601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13607:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13596:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13592:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15628,
+ "initializationExpression": {
+ "assignments": [
+ 15596
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15596,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "13585:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15628,
+ "src": "13577:9:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15595,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13577:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15598,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 15597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13589:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13577:13:38"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 15604,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "13615:3:38",
+ "subExpression": {
+ "id": 15603,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15596,
+ "src": "13615:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15605,
+ "nodeType": "ExpressionStatement",
+ "src": "13615:3:38"
+ },
+ "nodeType": "ForStatement",
+ "src": "13572:224:38"
+ }
+ ]
+ },
+ "id": 15630,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_updateAnonAadhaarVerifiers",
+ "nameLocation": "13187:27:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15573,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15569,
+ "mutability": "mutable",
+ "name": "circuitIds",
+ "nameLocation": "13242:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15630,
+ "src": "13224:28:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15567,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "13224:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 15568,
+ "nodeType": "ArrayTypeName",
+ "src": "13224:8:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15572,
+ "mutability": "mutable",
+ "name": "verifierAddresses",
+ "nameLocation": "13281:17:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15630,
+ "src": "13262:36:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15570,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "13262:7:38",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 15571,
+ "nodeType": "ArrayTypeName",
+ "src": "13262:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13214:90:38"
+ },
+ "returnParameters": {
+ "id": 15574,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13314:0:38"
+ },
+ "scope": 15972,
+ "src": "13178:624:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15746,
+ "nodeType": "Block",
+ "src": "13924:1024:38",
+ "statements": [
+ {
+ "assignments": [
+ 15637
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15637,
+ "mutability": "mutable",
+ "name": "pubKeyHash",
+ "nameLocation": "13942:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "13934:18:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15636,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13934:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15642,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15638,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "13955:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15639,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13961:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "13955:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15641,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 15640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13972:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13955:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13934:40:38"
+ },
+ {
+ "assignments": [
+ 15644
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15644,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "13992:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "13984:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15643,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13984:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15649,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15645,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14004:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15646,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14010:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14004:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15648,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 15647,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14021:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14004:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13984:39:38"
+ },
+ {
+ "assignments": [
+ 15651
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15651,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "14041:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14033:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15650,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14033:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15656,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15652,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14053:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15653,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14059:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14053:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15655,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 15654,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14070:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14053:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14033:39:38"
+ },
+ {
+ "assignments": [
+ 15658
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15658,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "14090:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14082:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15657,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14082:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15663,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15659,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14102:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15660,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14108:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14102:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15662,
+ "indexExpression": {
+ "hexValue": "33",
+ "id": 15661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14119:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14102:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14082:39:38"
+ },
+ {
+ "assignments": [
+ 15665
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15665,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "14139:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14131:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15664,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14131:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15670,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15666,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14154:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15667,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14160:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14154:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15669,
+ "indexExpression": {
+ "hexValue": "34",
+ "id": 15668,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14171:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14154:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14131:42:38"
+ },
+ {
+ "assignments": [
+ 15672
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15672,
+ "mutability": "mutable",
+ "name": "expirationDate",
+ "nameLocation": "14191:14:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14183:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15671,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14183:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15677,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15673,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14208:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15674,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14214:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14208:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15676,
+ "indexExpression": {
+ "hexValue": "35",
+ "id": 15675,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14225:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14208:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14183:44:38"
+ },
+ {
+ "assignments": [
+ 15679
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15679,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "14245:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14237:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15678,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14237:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15684,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15680,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14257:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15681,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14263:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14257:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15683,
+ "indexExpression": {
+ "hexValue": "36",
+ "id": 15682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14274:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14257:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14237:39:38"
+ },
+ {
+ "assignments": [
+ 15686
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15686,
+ "mutability": "mutable",
+ "name": "nullifierSeed",
+ "nameLocation": "14294:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14286:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15685,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14286:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15691,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15687,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14310:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15688,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14316:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14310:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15690,
+ "indexExpression": {
+ "hexValue": "37",
+ "id": 15689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14327:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14310:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14286:43:38"
+ },
+ {
+ "assignments": [
+ 15693
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15693,
+ "mutability": "mutable",
+ "name": "signalHash",
+ "nameLocation": "14347:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14339:18:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15692,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14339:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15698,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15694,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14360:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15695,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14366:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14360:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15697,
+ "indexExpression": {
+ "hexValue": "38",
+ "id": 15696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14377:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14360:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14339:40:38"
+ },
+ {
+ "assignments": [
+ 15700
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15700,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "14397:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14389:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15699,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14389:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15705,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15701,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14412:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15702,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14418:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14412:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15704,
+ "indexExpression": {
+ "hexValue": "39",
+ "id": 15703,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14429:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9_by_1",
+ "typeString": "int_const 9"
+ },
+ "value": "9"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14412:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14389:42:38"
+ },
+ {
+ "assignments": [
+ 15707
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15707,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "14449:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14441:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15706,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14441:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15712,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15708,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14465:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15709,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14471:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14465:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15711,
+ "indexExpression": {
+ "hexValue": "3130",
+ "id": 15710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14482:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14465:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14441:44:38"
+ },
+ {
+ "assignments": [
+ 15714
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15714,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "14502:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15746,
+ "src": "14495:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 15713,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "14495:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15722,
+ "initialValue": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 15717,
+ "name": "proof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15633,
+ "src": "14527:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory"
+ }
+ },
+ "id": 15718,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14533:10:38",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14527,
+ "src": "14527:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr",
+ "typeString": "uint256[12] memory"
+ }
+ },
+ "id": 15720,
+ "indexExpression": {
+ "hexValue": "3131",
+ "id": 15719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14544:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11_by_1",
+ "typeString": "int_const 11"
+ },
+ "value": "11"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14527:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15716,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "14520:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 15715,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "14520:6:38",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 15721,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14520:28:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14495:53:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15724,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15651,
+ "src": "14594:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15725,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15658,
+ "src": "14617:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15726,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15644,
+ "src": "14640:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15727,
+ "name": "pubKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15637,
+ "src": "14663:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15728,
+ "name": "nullifierSeed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15686,
+ "src": "14687:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15729,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15665,
+ "src": "14714:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15730,
+ "name": "expirationDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15672,
+ "src": "14740:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15731,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15700,
+ "src": "14768:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15732,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15707,
+ "src": "14794:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15733,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15679,
+ "src": "14821:9:38",
+ "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"
+ },
+ {
+ "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"
+ }
+ ],
+ "id": 15723,
+ "name": "_validatePublicInputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15859,
+ "src": "14559:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) view"
+ }
+ },
+ "id": 15734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14559:281:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15735,
+ "nodeType": "ExpressionStatement",
+ "src": "14559:281:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15737,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15644,
+ "src": "14864:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15738,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15714,
+ "src": "14875:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 15736,
+ "name": "_setNullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15935,
+ "src": "14850:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 15739,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14850:41:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15740,
+ "nodeType": "ExpressionStatement",
+ "src": "14850:41:38"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15742,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15651,
+ "src": "14920:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15743,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15658,
+ "src": "14931:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15741,
+ "name": "_addHashAndTransit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15881,
+ "src": "14901:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 15744,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14901:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15745,
+ "nodeType": "ExpressionStatement",
+ "src": "14901:40:38"
+ }
+ ]
+ },
+ "id": 15747,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_afterProofSubmit",
+ "nameLocation": "13817:17:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15634,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15633,
+ "mutability": "mutable",
+ "name": "proof",
+ "nameLocation": "13903:5:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15747,
+ "src": "13844:64:38",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof"
+ },
+ "typeName": {
+ "id": 15632,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15631,
+ "name": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof",
+ "nameLocations": [
+ "13844:27:38",
+ "13872:23:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14528,
+ "src": "13844:51:38"
+ },
+ "referencedDeclaration": 14528,
+ "src": "13844:51:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr",
+ "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13834:80:38"
+ },
+ "returnParameters": {
+ "id": 15635,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13924:0:38"
+ },
+ "scope": 15972,
+ "src": "13808:1140:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15858,
+ "nodeType": "Block",
+ "src": "15344:874:38",
+ "statements": [
+ {
+ "assignments": [
+ 15772
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15772,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "15397:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15858,
+ "src": "15354:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15771,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15770,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "15354:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "15354:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "15354:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15775,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15773,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "15401:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15401:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15354:87:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15778,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15776,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15749,
+ "src": "15455:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15468:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "15455:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15782,
+ "nodeType": "IfStatement",
+ "src": "15451:45:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15779,
+ "name": "InvalidHashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14727,
+ "src": "15478:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15780,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15478:18:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15781,
+ "nodeType": "RevertStatement",
+ "src": "15471:25:38"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15785,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15783,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15751,
+ "src": "15510:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15523:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "15510:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15789,
+ "nodeType": "IfStatement",
+ "src": "15506:45:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15786,
+ "name": "InvalidHashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14729,
+ "src": "15533:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15787,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15533:18:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15788,
+ "nodeType": "RevertStatement",
+ "src": "15526:25:38"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15790,
+ "name": "nullifierSeed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15757,
+ "src": "15565:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 15791,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "15582:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15792,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15584:13:38",
+ "memberName": "nullifierSeed",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14821,
+ "src": "15582:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15565:32:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15797,
+ "nodeType": "IfStatement",
+ "src": "15561:67:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15794,
+ "name": "InvalidNullifierSeed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14731,
+ "src": "15606:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15606:22:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15796,
+ "nodeType": "RevertStatement",
+ "src": "15599:29:38"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15801,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15798,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15763,
+ "src": "15642:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 15799,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "15658:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15800,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15660:12:38",
+ "memberName": "templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14825,
+ "src": "15658:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15642:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15805,
+ "nodeType": "IfStatement",
+ "src": "15638:64:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15802,
+ "name": "InvalidTemplateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14733,
+ "src": "15681:19:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15803,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15681:21:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15804,
+ "nodeType": "RevertStatement",
+ "src": "15674:28:38"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15809,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15806,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15765,
+ "src": "15716:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 15807,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "15733:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15808,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15735:13:38",
+ "memberName": "issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14827,
+ "src": "15733:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15716:32:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15813,
+ "nodeType": "IfStatement",
+ "src": "15712:67:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15810,
+ "name": "InvalidIssuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14735,
+ "src": "15757:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15757:22:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15812,
+ "nodeType": "RevertStatement",
+ "src": "15750:29:38"
+ }
+ },
+ {
+ "assignments": [
+ 15815
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15815,
+ "mutability": "mutable",
+ "name": "expectedExpiration",
+ "nameLocation": "15798:18:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15858,
+ "src": "15790:26:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15814,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15790:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15820,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15819,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15816,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15759,
+ "src": "15819:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "expression": {
+ "id": 15817,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "15834:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15818,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15836:14:38",
+ "memberName": "expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14823,
+ "src": "15834:16:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15819:31:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15790:60:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15823,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15821,
+ "name": "expirationDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15761,
+ "src": "15864:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 15822,
+ "name": "expectedExpiration",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15815,
+ "src": "15882:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "15864:36:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15830,
+ "nodeType": "IfStatement",
+ "src": "15860:131:38",
+ "trueBody": {
+ "id": 15829,
+ "nodeType": "Block",
+ "src": "15902:89:38",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 15825,
+ "name": "expectedExpiration",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15815,
+ "src": "15945:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15826,
+ "name": "expirationDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15761,
+ "src": "15965:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15824,
+ "name": "InvalidExpirationDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14741,
+ "src": "15923:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 15827,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15923:57:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15828,
+ "nodeType": "RevertStatement",
+ "src": "15916:64:38"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15831,
+ "name": "expirationDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15761,
+ "src": "16004:14:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "expression": {
+ "id": 15832,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "16022:5:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 15833,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16028:9:38",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "16022:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16004:33:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15838,
+ "nodeType": "IfStatement",
+ "src": "16000:60:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15835,
+ "name": "ProofExpired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14743,
+ "src": "16046:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16046:14:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15837,
+ "nodeType": "RevertStatement",
+ "src": "16039:21:38"
+ }
+ },
+ {
+ "condition": {
+ "id": 15843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "16074:31:38",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 15839,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "16075:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15840,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16077:16:38",
+ "memberName": "publicKeysHashes",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14835,
+ "src": "16075:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15842,
+ "indexExpression": {
+ "id": 15841,
+ "name": "pubKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15755,
+ "src": "16094:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "16075:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15847,
+ "nodeType": "IfStatement",
+ "src": "16070:63:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15844,
+ "name": "InvalidPubKeyHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14745,
+ "src": "16114:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 15845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16114:19:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15846,
+ "nodeType": "RevertStatement",
+ "src": "16107:26:38"
+ }
+ },
+ {
+ "condition": {
+ "id": 15852,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "16147:24:38",
+ "subExpression": {
+ "baseExpression": {
+ "expression": {
+ "id": 15848,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15772,
+ "src": "16148:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15849,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16150:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "16148:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15851,
+ "indexExpression": {
+ "id": 15850,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15767,
+ "src": "16161:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "16148:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15857,
+ "nodeType": "IfStatement",
+ "src": "16143:68:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 15854,
+ "name": "qrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15767,
+ "src": "16201:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 15853,
+ "name": "UnsupportedQrVersion",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14755,
+ "src": "16180:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 15855,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16180:31:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15856,
+ "nodeType": "RevertStatement",
+ "src": "16173:38:38"
+ }
+ }
+ ]
+ },
+ "id": 15859,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_validatePublicInputs",
+ "nameLocation": "15012:21:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15768,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15749,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "15051:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15043:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15748,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15043:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15751,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "15078:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15070:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15750,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15070:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15753,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "15105:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15097:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15752,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15097:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15755,
+ "mutability": "mutable",
+ "name": "pubKeyHash",
+ "nameLocation": "15132:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15124:18:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15754,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15124:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15757,
+ "mutability": "mutable",
+ "name": "nullifierSeed",
+ "nameLocation": "15160:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15152:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15756,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15152:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15759,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "15191:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15183:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15758,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15183:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15761,
+ "mutability": "mutable",
+ "name": "expirationDate",
+ "nameLocation": "15221:14:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15213:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15760,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15213:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15763,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "15253:12:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15245:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15762,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15245:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15765,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "15283:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15275:21:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15764,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15275:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15767,
+ "mutability": "mutable",
+ "name": "qrVersion",
+ "nameLocation": "15314:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15859,
+ "src": "15306:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15766,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15306:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15033:296:38"
+ },
+ "returnParameters": {
+ "id": 15769,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "15344:0:38"
+ },
+ "scope": 15972,
+ "src": "15003:1215:38",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15880,
+ "nodeType": "Block",
+ "src": "16285:131:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15870,
+ "name": "hi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15861,
+ "src": "16343:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15871,
+ "name": "hv",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15863,
+ "src": "16347:2:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15866,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "16295:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 15867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16295:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 15868,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16321:8:38",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "16295:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 15869,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16330:12:38",
+ "memberName": "addClaimHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1590,
+ "src": "16295:47:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 15872,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16295:55:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15873,
+ "nodeType": "ExpressionStatement",
+ "src": "16295:55:38"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15874,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "16360:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 15875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16360:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 15876,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16386:8:38",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "16360:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 15877,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16395:12:38",
+ "memberName": "transitState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1778,
+ "src": "16360:47:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer)"
+ }
+ },
+ "id": 15878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16360:49:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15879,
+ "nodeType": "ExpressionStatement",
+ "src": "16360:49:38"
+ }
+ ]
+ },
+ "id": 15881,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addHashAndTransit",
+ "nameLocation": "16233:18:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15864,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15861,
+ "mutability": "mutable",
+ "name": "hi",
+ "nameLocation": "16260:2:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15881,
+ "src": "16252:10:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15860,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16252:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15863,
+ "mutability": "mutable",
+ "name": "hv",
+ "nameLocation": "16272:2:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15881,
+ "src": "16264:10:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15862,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16264:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16251:24:38"
+ },
+ "returnParameters": {
+ "id": 15865,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16285:0:38"
+ },
+ "scope": 15972,
+ "src": "16224:192:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 15934,
+ "nodeType": "Block",
+ "src": "16496:510:38",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 15890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15888,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15885,
+ "src": "16510:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15889,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16529:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "16510:20:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15895,
+ "nodeType": "IfStatement",
+ "src": "16506:72:38",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 15892,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15885,
+ "src": "16562:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 15891,
+ "name": "InvalidRevocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14759,
+ "src": "16539:22:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint64_$returns$_t_error_$",
+ "typeString": "function (uint64) pure returns (error)"
+ }
+ },
+ "id": 15893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16539:39:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 15894,
+ "nodeType": "RevertStatement",
+ "src": "16532:46:38"
+ }
+ },
+ {
+ "assignments": [
+ 15898
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15898,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "16631:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15934,
+ "src": "16588:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15897,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15896,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "16588:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "16588:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "16588:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15901,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15899,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "16635:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16635:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16588:87:38"
+ },
+ {
+ "assignments": [
+ 15903
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15903,
+ "mutability": "mutable",
+ "name": "existingNonce",
+ "nameLocation": "16692:13:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15934,
+ "src": "16685:20:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 15902,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "16685:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15908,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 15904,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15898,
+ "src": "16708:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15905,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16710:28:38",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14839,
+ "src": "16708:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 15907,
+ "indexExpression": {
+ "id": 15906,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15883,
+ "src": "16739:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "16708:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16685:64:38"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 15911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15909,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15903,
+ "src": "16763:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 15910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16780:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "16763:18:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15925,
+ "nodeType": "IfStatement",
+ "src": "16759:172:38",
+ "trueBody": {
+ "id": 15924,
+ "nodeType": "Block",
+ "src": "16783:148:38",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 15916,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15903,
+ "src": "16844:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15912,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "16797:23:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 15913,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16797:25:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 15914,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16823:8:38",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "16797:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 15915,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16832:11:38",
+ "memberName": "revokeClaim",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1614,
+ "src": "16797:46:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64)"
+ }
+ },
+ "id": 15917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16797:61:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15918,
+ "nodeType": "ExpressionStatement",
+ "src": "16797:61:38"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 15920,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15883,
+ "src": "16895:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 15921,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15903,
+ "src": "16906:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 15919,
+ "name": "CredentialRevoked",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14787,
+ "src": "16877:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 15922,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16877:43:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 15923,
+ "nodeType": "EmitStatement",
+ "src": "16872:48:38"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 15932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15926,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15898,
+ "src": "16940:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15929,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16942:28:38",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14839,
+ "src": "16940:30:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 15930,
+ "indexExpression": {
+ "id": 15928,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15883,
+ "src": "16971:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "16940:41:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 15931,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15885,
+ "src": "16984:15:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "16940:59:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 15933,
+ "nodeType": "ExpressionStatement",
+ "src": "16940:59:38"
+ }
+ ]
+ },
+ "id": 15935,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_setNullifier",
+ "nameLocation": "16431:13:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15886,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15883,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "16453:9:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15935,
+ "src": "16445:17:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15882,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16445:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15885,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "16471:15:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15935,
+ "src": "16464:22:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 15884,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "16464:6:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16444:43:38"
+ },
+ "returnParameters": {
+ "id": 15887,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16496:0:38"
+ },
+ "scope": 15972,
+ "src": "16422:584:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 15970,
+ "nodeType": "Block",
+ "src": "17080:220:38",
+ "statements": [
+ {
+ "assignments": [
+ 15943
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15943,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "17133:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15970,
+ "src": "17090:44:38",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 15942,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 15941,
+ "name": "AnonAadhaarCredentialIssuerStorage",
+ "nameLocations": [
+ "17090:34:38"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14844,
+ "src": "17090:34:38"
+ },
+ "referencedDeclaration": 14844,
+ "src": "17090:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15946,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 15944,
+ "name": "_getAnonAadhaarCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14855,
+ "src": "17137:38:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$",
+ "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 15945,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17137:40:38",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17090:87:38"
+ },
+ {
+ "body": {
+ "id": 15968,
+ "nodeType": "Block",
+ "src": "17235:59:38",
+ "statements": [
+ {
+ "expression": {
+ "id": 15966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 15958,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15943,
+ "src": "17249:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr",
+ "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 15963,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17251:10:38",
+ "memberName": "qrVersions",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14843,
+ "src": "17249:12:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
+ "typeString": "mapping(uint256 => bool)"
+ }
+ },
+ "id": 15964,
+ "indexExpression": {
+ "baseExpression": {
+ "id": 15960,
+ "name": "qrVersions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15938,
+ "src": "17262:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ },
+ "id": 15962,
+ "indexExpression": {
+ "id": 15961,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15948,
+ "src": "17273:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "17262:13:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "17249:27:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 15965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17279:4:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "17249:34:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15967,
+ "nodeType": "ExpressionStatement",
+ "src": "17249:34:38"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 15954,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 15951,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15948,
+ "src": "17207:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 15952,
+ "name": "qrVersions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15938,
+ "src": "17211:10:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[] calldata"
+ }
+ },
+ "id": 15953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17222:6:38",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "17211:17:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17207:21:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 15969,
+ "initializationExpression": {
+ "assignments": [
+ 15948
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 15948,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "17200:1:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15969,
+ "src": "17192:9:38",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15947,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17192:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 15950,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 15949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17204:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17192:13:38"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 15956,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "17230:3:38",
+ "subExpression": {
+ "id": 15955,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 15948,
+ "src": "17230:1:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15957,
+ "nodeType": "ExpressionStatement",
+ "src": "17230:3:38"
+ },
+ "nodeType": "ForStatement",
+ "src": "17187:107:38"
+ }
+ ]
+ },
+ "id": 15971,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addQrVersionBatch",
+ "nameLocation": "17021:18:38",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 15939,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15938,
+ "mutability": "mutable",
+ "name": "qrVersions",
+ "nameLocation": "17059:10:38",
+ "nodeType": "VariableDeclaration",
+ "scope": 15971,
+ "src": "17040:29:38",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 15936,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17040:7:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 15937,
+ "nodeType": "ArrayTypeName",
+ "src": "17040:9:38",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17039:31:38"
+ },
+ "returnParameters": {
+ "id": 15940,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "17080:0:38"
+ },
+ "scope": 15972,
+ "src": "17012:288:38",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 15973,
+ "src": "1526:15776:38",
+ "usedErrors": [
+ 4804,
+ 4809,
+ 4985,
+ 4988,
+ 14723,
+ 14725,
+ 14727,
+ 14729,
+ 14731,
+ 14733,
+ 14735,
+ 14741,
+ 14743,
+ 14745,
+ 14747,
+ 14749,
+ 14751,
+ 14755,
+ 14759,
+ 14765,
+ 14769
+ ],
+ "usedEvents": [
+ 4668,
+ 4815,
+ 4993,
+ 14773,
+ 14777,
+ 14781,
+ 14787,
+ 14793
+ ]
+ }
+ ],
+ "src": "36:17267:38"
+ },
+ "id": 38
+ },
+ "contracts/verifiers/PassportCredentialIssuer.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/PassportCredentialIssuer.sol",
+ "exportedSymbols": {
+ "CircuitConstants": [
+ 14505
+ ],
+ "CurrentDateExpired": [
+ 16026
+ ],
+ "CurrentDateInFuture": [
+ 16030
+ ],
+ "DateTime": [
+ 14469
+ ],
+ "ECDSA": [
+ 8617
+ ],
+ "EIP712Upgradeable": [
+ 5626
+ ],
+ "EnumerableSet": [
+ 12966
+ ],
+ "IAttestationValidator": [
+ 14634
+ ],
+ "ICredentialCircuitVerifier": [
+ 14709
+ ],
+ "IdentityBase": [
+ 1327
+ ],
+ "IdentityLib": [
+ 2217
+ ],
+ "ImageHashIsNotWhitelisted": [
+ 16062
+ ],
+ "InvalidAttestation": [
+ 16064
+ ],
+ "InvalidAttestationUserDataLength": [
+ 16068
+ ],
+ "InvalidCredentialProof": [
+ 16044
+ ],
+ "InvalidHashIndex": [
+ 16004
+ ],
+ "InvalidHashValue": [
+ 16008
+ ],
+ "InvalidIssuerDidHash": [
+ 16070
+ ],
+ "InvalidLinkId": [
+ 16000
+ ],
+ "InvalidPassportSignatureProof": [
+ 16046
+ ],
+ "InvalidRevocationNonce": [
+ 16074
+ ],
+ "InvalidSignerAddress": [
+ 16066
+ ],
+ "InvalidSignerPassportSignatureProof": [
+ 16050
+ ],
+ "InvalidTemplateRoot": [
+ 16014
+ ],
+ "InvalidTransactor": [
+ 16058
+ ],
+ "IssuanceDateExpired": [
+ 16018
+ ],
+ "IssuanceDateInFuture": [
+ 16022
+ ],
+ "LengthMismatch": [
+ 16040
+ ],
+ "NoCredentialCircuitIdFound": [
+ 16054
+ ],
+ "NoVerifierSet": [
+ 16042
+ ],
+ "NullifierDoesNotExist": [
+ 16034
+ ],
+ "Ownable2StepUpgradeable": [
+ 4773
+ ],
+ "PassportCredentialIssuer": [
+ 17540
+ ]
+ },
+ "id": 17541,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 15974,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".27"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "36:23:39"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
+ "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
+ "id": 15976,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 8618,
+ "src": "61:75:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15975,
+ "name": "ECDSA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8617,
+ "src": "69:5:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol",
+ "file": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol",
+ "id": 15978,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 5627,
+ "src": "137:111:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15977,
+ "name": "EIP712Upgradeable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5626,
+ "src": "145:17:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
+ "file": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
+ "id": 15980,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 12967,
+ "src": "249:86:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15979,
+ "name": "EnumerableSet",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 12966,
+ "src": "257:13:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/IdentityLib.sol",
+ "file": "@iden3/contracts/lib/IdentityLib.sol",
+ "id": 15982,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 2218,
+ "src": "336:65:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15981,
+ "name": "IdentityLib",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2217,
+ "src": "344:11:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@iden3/contracts/lib/IdentityBase.sol",
+ "file": "@iden3/contracts/lib/IdentityBase.sol",
+ "id": 15984,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 1328,
+ "src": "402:67:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15983,
+ "name": "IdentityBase",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1327,
+ "src": "410:12:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/interfaces/ICredentialCircuitVerifier.sol",
+ "file": "../interfaces/ICredentialCircuitVerifier.sol",
+ "id": 15986,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 14710,
+ "src": "470:88:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15985,
+ "name": "ICredentialCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14709,
+ "src": "478:26:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/constants/CircuitConstants.sol",
+ "file": "../constants/CircuitConstants.sol",
+ "id": 15988,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 14506,
+ "src": "559:67:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15987,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "567:16:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol",
+ "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol",
+ "id": 15990,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 4774,
+ "src": "627:111:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15989,
+ "name": "Ownable2StepUpgradeable",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4773,
+ "src": "635:23:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@quant-finance/solidity-datetime/contracts/DateTime.sol",
+ "file": "@quant-finance/solidity-datetime/contracts/DateTime.sol",
+ "id": 15992,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 14470,
+ "src": "739:81:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15991,
+ "name": "DateTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14469,
+ "src": "747:8:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/interfaces/IAttestationValidator.sol",
+ "file": "../interfaces/IAttestationValidator.sol",
+ "id": 15994,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 17541,
+ "sourceUnit": 14635,
+ "src": "821:78:39",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 15993,
+ "name": "IAttestationValidator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14634,
+ "src": "829:21:39",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "ff8bc9f4",
+ "id": 16000,
+ "name": "InvalidLinkId",
+ "nameLocation": "907:13:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 15999,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 15996,
+ "mutability": "mutable",
+ "name": "linkId1",
+ "nameLocation": "929:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16000,
+ "src": "921:15:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15995,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "921:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 15998,
+ "mutability": "mutable",
+ "name": "linkId2",
+ "nameLocation": "946:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16000,
+ "src": "938:15:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 15997,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "938:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "920:34:39"
+ },
+ "src": "901:54:39"
+ },
+ {
+ "errorSelector": "36355b0e",
+ "id": 16004,
+ "name": "InvalidHashIndex",
+ "nameLocation": "962:16:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16003,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16002,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "987:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16004,
+ "src": "979:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16001,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "979:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "978:19:39"
+ },
+ "src": "956:42:39"
+ },
+ {
+ "errorSelector": "97b93236",
+ "id": 16008,
+ "name": "InvalidHashValue",
+ "nameLocation": "1005:16:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16007,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16006,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "1030:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16008,
+ "src": "1022:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16005,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1022:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1021:19:39"
+ },
+ "src": "999:42:39"
+ },
+ {
+ "errorSelector": "e7483791",
+ "id": 16014,
+ "name": "InvalidTemplateRoot",
+ "nameLocation": "1048:19:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16013,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16010,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "1076:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16014,
+ "src": "1068:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16009,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1068:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16012,
+ "mutability": "mutable",
+ "name": "expectedTemplateRoot",
+ "nameLocation": "1098:20:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16014,
+ "src": "1090:28:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16011,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1090:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1067:52:39"
+ },
+ "src": "1042:78:39"
+ },
+ {
+ "errorSelector": "017a13e2",
+ "id": 16018,
+ "name": "IssuanceDateExpired",
+ "nameLocation": "1127:19:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16017,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16016,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "1155:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16018,
+ "src": "1147:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16015,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1147:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1146:22:39"
+ },
+ "src": "1121:48:39"
+ },
+ {
+ "errorSelector": "d8188335",
+ "id": 16022,
+ "name": "IssuanceDateInFuture",
+ "nameLocation": "1176:20:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16021,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16020,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "1205:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16022,
+ "src": "1197:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16019,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1197:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1196:22:39"
+ },
+ "src": "1170:49:39"
+ },
+ {
+ "errorSelector": "5d5e30bf",
+ "id": 16026,
+ "name": "CurrentDateExpired",
+ "nameLocation": "1226:18:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16025,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16024,
+ "mutability": "mutable",
+ "name": "currentDate",
+ "nameLocation": "1253:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16026,
+ "src": "1245:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16023,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1245:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1244:21:39"
+ },
+ "src": "1220:46:39"
+ },
+ {
+ "errorSelector": "53f3b141",
+ "id": 16030,
+ "name": "CurrentDateInFuture",
+ "nameLocation": "1273:19:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16029,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16028,
+ "mutability": "mutable",
+ "name": "currentDate",
+ "nameLocation": "1301:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16030,
+ "src": "1293:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16027,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1293:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1292:21:39"
+ },
+ "src": "1267:47:39"
+ },
+ {
+ "errorSelector": "52047769",
+ "id": 16034,
+ "name": "NullifierDoesNotExist",
+ "nameLocation": "1321:21:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16033,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16032,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "1351:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16034,
+ "src": "1343:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16031,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1343:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1342:19:39"
+ },
+ "src": "1315:47:39"
+ },
+ {
+ "errorSelector": "ab8b67c6",
+ "id": 16040,
+ "name": "LengthMismatch",
+ "nameLocation": "1369:14:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16039,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16036,
+ "mutability": "mutable",
+ "name": "length1",
+ "nameLocation": "1392:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16040,
+ "src": "1384:15:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16035,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1384:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16038,
+ "mutability": "mutable",
+ "name": "length2",
+ "nameLocation": "1409:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16040,
+ "src": "1401:15:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16037,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1401:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1383:34:39"
+ },
+ "src": "1363:55:39"
+ },
+ {
+ "errorSelector": "0ee78d58",
+ "id": 16042,
+ "name": "NoVerifierSet",
+ "nameLocation": "1425:13:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16041,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1438:2:39"
+ },
+ "src": "1419:22:39"
+ },
+ {
+ "errorSelector": "0205c8ec",
+ "id": 16044,
+ "name": "InvalidCredentialProof",
+ "nameLocation": "1448:22:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16043,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1470:2:39"
+ },
+ "src": "1442:31:39"
+ },
+ {
+ "errorSelector": "df2b56ff",
+ "id": 16046,
+ "name": "InvalidPassportSignatureProof",
+ "nameLocation": "1480:29:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16045,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1509:2:39"
+ },
+ "src": "1474:38:39"
+ },
+ {
+ "errorSelector": "a1943088",
+ "id": 16050,
+ "name": "InvalidSignerPassportSignatureProof",
+ "nameLocation": "1519:35:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16049,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16048,
+ "mutability": "mutable",
+ "name": "signer",
+ "nameLocation": "1563:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16050,
+ "src": "1555:14:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16047,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1555:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1554:16:39"
+ },
+ "src": "1513:58:39"
+ },
+ {
+ "errorSelector": "751391c4",
+ "id": 16054,
+ "name": "NoCredentialCircuitIdFound",
+ "nameLocation": "1578:26:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16053,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16052,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "1612:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16054,
+ "src": "1605:16:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16051,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1605:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1604:18:39"
+ },
+ "src": "1572:51:39"
+ },
+ {
+ "errorSelector": "1d83d27f",
+ "id": 16058,
+ "name": "InvalidTransactor",
+ "nameLocation": "1630:17:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16057,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16056,
+ "mutability": "mutable",
+ "name": "transactor",
+ "nameLocation": "1656:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16058,
+ "src": "1648:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16055,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1648:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1647:20:39"
+ },
+ "src": "1624:44:39"
+ },
+ {
+ "errorSelector": "8338dba5",
+ "id": 16062,
+ "name": "ImageHashIsNotWhitelisted",
+ "nameLocation": "1675:25:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16061,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16060,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "1709:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16062,
+ "src": "1701:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16059,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1701:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1700:19:39"
+ },
+ "src": "1669:51:39"
+ },
+ {
+ "errorSelector": "bd8ba84d",
+ "id": 16064,
+ "name": "InvalidAttestation",
+ "nameLocation": "1727:18:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16063,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1745:2:39"
+ },
+ "src": "1721:27:39"
+ },
+ {
+ "errorSelector": "4501a919",
+ "id": 16066,
+ "name": "InvalidSignerAddress",
+ "nameLocation": "1755:20:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16065,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1775:2:39"
+ },
+ "src": "1749:29:39"
+ },
+ {
+ "errorSelector": "128cc6a8",
+ "id": 16068,
+ "name": "InvalidAttestationUserDataLength",
+ "nameLocation": "1785:32:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16067,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1817:2:39"
+ },
+ "src": "1779:41:39"
+ },
+ {
+ "errorSelector": "fe0c887b",
+ "id": 16070,
+ "name": "InvalidIssuerDidHash",
+ "nameLocation": "1827:20:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16069,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1847:2:39"
+ },
+ "src": "1821:29:39"
+ },
+ {
+ "errorSelector": "6ff2d366",
+ "id": 16074,
+ "name": "InvalidRevocationNonce",
+ "nameLocation": "1857:22:39",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 16073,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16072,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "1887:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16074,
+ "src": "1880:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 16071,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "1880:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1879:24:39"
+ },
+ "src": "1851:53:39"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 16076,
+ "name": "IdentityBase",
+ "nameLocations": [
+ "2058:12:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1327,
+ "src": "2058:12:39"
+ },
+ "id": 16077,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2058:12:39"
+ },
+ {
+ "baseName": {
+ "id": 16078,
+ "name": "EIP712Upgradeable",
+ "nameLocations": [
+ "2072:17:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5626,
+ "src": "2072:17:39"
+ },
+ "id": 16079,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2072:17:39"
+ },
+ {
+ "baseName": {
+ "id": 16080,
+ "name": "Ownable2StepUpgradeable",
+ "nameLocations": [
+ "2091:23:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4773,
+ "src": "2091:23:39"
+ },
+ "id": 16081,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2091:23:39"
+ }
+ ],
+ "canonicalName": "PassportCredentialIssuer",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 16075,
+ "nodeType": "StructuredDocumentation",
+ "src": "1906:114:39",
+ "text": " @dev Address ownership credential issuer.\n This issuer issue non-merklized credentials decentralized."
+ },
+ "fullyImplemented": true,
+ "id": 17540,
+ "linearizedBaseContracts": [
+ 17540,
+ 4773,
+ 4968,
+ 5282,
+ 5626,
+ 5651,
+ 5236,
+ 1327,
+ 8727,
+ 8739,
+ 158,
+ 94
+ ],
+ "name": "PassportCredentialIssuer",
+ "nameLocation": "2030:24:39",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 16085,
+ "libraryName": {
+ "id": 16082,
+ "name": "IdentityLib",
+ "nameLocations": [
+ "2127:11:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 2217,
+ "src": "2127:11:39"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "2121:39:39",
+ "typeName": {
+ "id": 16084,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16083,
+ "name": "IdentityLib.Data",
+ "nameLocations": [
+ "2143:11:39",
+ "2155:4:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1371,
+ "src": "2143:16:39"
+ },
+ "referencedDeclaration": 1371,
+ "src": "2143:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage_ptr",
+ "typeString": "struct IdentityLib.Data"
+ }
+ }
+ },
+ {
+ "global": false,
+ "id": 16088,
+ "libraryName": {
+ "id": 16086,
+ "name": "ECDSA",
+ "nameLocations": [
+ "2171:5:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8617,
+ "src": "2171:5:39"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "2165:24:39",
+ "typeName": {
+ "id": 16087,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2181:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ },
+ {
+ "global": false,
+ "id": 16092,
+ "libraryName": {
+ "id": 16089,
+ "name": "EnumerableSet",
+ "nameLocations": [
+ "2200:13:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12966,
+ "src": "2200:13:39"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "2194:49:39",
+ "typeName": {
+ "id": 16091,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16090,
+ "name": "EnumerableSet.AddressSet",
+ "nameLocations": [
+ "2218:13:39",
+ "2232:10:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "2218:24:39"
+ },
+ "referencedDeclaration": 12653,
+ "src": "2218:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ }
+ },
+ {
+ "global": false,
+ "id": 16095,
+ "libraryName": {
+ "id": 16093,
+ "name": "DateTime",
+ "nameLocations": [
+ "2254:8:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14469,
+ "src": "2254:8:39"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "2248:27:39",
+ "typeName": {
+ "id": 16094,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2267:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 16096,
+ "nodeType": "StructuredDocumentation",
+ "src": "2281:47:39",
+ "text": " @dev Version of the contract"
+ },
+ "functionSelector": "ffa1ad74",
+ "id": 16099,
+ "mutability": "constant",
+ "name": "VERSION",
+ "nameLocation": "2356:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17540,
+ "src": "2333:40:39",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16097,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2333:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "value": {
+ "hexValue": "312e302e33",
+ "id": 16098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2366:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ff079ec60e41e58015c3d06abca8c1edb1b2c61945fed5e35644385a142eb2a9",
+ "typeString": "literal_string \"1.0.3\""
+ },
+ "value": "1.0.3"
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 16100,
+ "nodeType": "StructuredDocumentation",
+ "src": "2380:49:39",
+ "text": " @dev Version of EIP 712 domain"
+ },
+ "functionSelector": "acb8cc49",
+ "id": 16103,
+ "mutability": "constant",
+ "name": "DOMAIN_VERSION",
+ "nameLocation": "2457:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17540,
+ "src": "2434:47:39",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16101,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2434:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "value": {
+ "hexValue": "312e302e30",
+ "id": 16102,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2474:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c",
+ "typeString": "literal_string \"1.0.0\""
+ },
+ "value": "1.0.0"
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 16106,
+ "mutability": "constant",
+ "name": "DATE_20TH_CENTURY",
+ "nameLocation": "2513:17:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17540,
+ "src": "2488:51:39",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16104,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2488:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "353030303030",
+ "id": 16105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2533:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_500000_by_1",
+ "typeString": "int_const 500000"
+ },
+ "value": "500000"
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": true,
+ "documentation": {
+ "id": 16107,
+ "nodeType": "StructuredDocumentation",
+ "src": "2546:65:39",
+ "text": " @dev PassportCredential message data type hash"
+ },
+ "functionSelector": "da936540",
+ "id": 16112,
+ "mutability": "constant",
+ "name": "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH",
+ "nameLocation": "2640:36:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17540,
+ "src": "2616:136:39",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16108,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2616:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "hexValue": "50617373706f727443726564656e7469616c2875696e74323536206c696e6b49642c75696e74323536206e756c6c696669657229",
+ "id": 16110,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2697:54:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d834",
+ "typeString": "literal_string \"PassportCredential(uint256 linkId,uint256 nullifier)\""
+ },
+ "value": "PassportCredential(uint256 linkId,uint256 nullifier)"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d834",
+ "typeString": "literal_string \"PassportCredential(uint256 linkId,uint256 nullifier)\""
+ }
+ ],
+ "id": 16109,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "2687:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 16111,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2687:65:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.StateInfo",
+ "id": 16117,
+ "members": [
+ {
+ "constant": false,
+ "id": 16114,
+ "mutability": "mutable",
+ "name": "stateAddress",
+ "nameLocation": "2794:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16117,
+ "src": "2786:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16113,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2786:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16116,
+ "mutability": "mutable",
+ "name": "idType",
+ "nameLocation": "2823:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16117,
+ "src": "2816:13:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ },
+ "typeName": {
+ "id": 16115,
+ "name": "bytes2",
+ "nodeType": "ElementaryTypeName",
+ "src": "2816:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "StateInfo",
+ "nameLocation": "2766:9:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "2759:77:39",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.PassportCredentialMessage",
+ "id": 16122,
+ "members": [
+ {
+ "constant": false,
+ "id": 16119,
+ "mutability": "mutable",
+ "name": "linkId",
+ "nameLocation": "2893:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16122,
+ "src": "2885:14:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16118,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2885:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16121,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "2917:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16122,
+ "src": "2909:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16120,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2909:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "PassportCredentialMessage",
+ "nameLocation": "2849:25:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "2842:91:39",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.PassportSignatureProof",
+ "id": 16128,
+ "members": [
+ {
+ "constant": false,
+ "id": 16125,
+ "mutability": "mutable",
+ "name": "passportCredentialMsg",
+ "nameLocation": "3005:21:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16128,
+ "src": "2979:47:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage"
+ },
+ "typeName": {
+ "id": 16124,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16123,
+ "name": "PassportCredentialMessage",
+ "nameLocations": [
+ "2979:25:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16122,
+ "src": "2979:25:39"
+ },
+ "referencedDeclaration": 16122,
+ "src": "2979:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16127,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "3042:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16128,
+ "src": "3036:15:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 16126,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3036:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "PassportSignatureProof",
+ "nameLocation": "2946:22:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "2939:119:39",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.CredentialProof",
+ "id": 16133,
+ "members": [
+ {
+ "constant": false,
+ "id": 16130,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "3104:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16133,
+ "src": "3097:16:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16129,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3097:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16132,
+ "mutability": "mutable",
+ "name": "proof",
+ "nameLocation": "3129:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16133,
+ "src": "3123:11:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 16131,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3123:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "CredentialProof",
+ "nameLocation": "3071:15:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "3064:77:39",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.ProofInputs",
+ "id": 16150,
+ "members": [
+ {
+ "constant": false,
+ "id": 16135,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "3184:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3176:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16134,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3176:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16137,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "3211:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3203:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16136,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3203:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16139,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "3238:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3230:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16138,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3230:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16141,
+ "mutability": "mutable",
+ "name": "currentDate",
+ "nameLocation": "3268:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3260:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16140,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3260:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16143,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "3297:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3289:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16142,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3289:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16145,
+ "mutability": "mutable",
+ "name": "linkIdCredentialProof",
+ "nameLocation": "3327:21:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3319:29:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16144,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3319:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16147,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "3365:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3358:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 16146,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3358:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16149,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "3398:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16150,
+ "src": "3390:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16148,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3390:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "ProofInputs",
+ "nameLocation": "3154:11:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "3147:271:39",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PassportCredentialIssuer.PassportCredentialIssuerStorage",
+ "documentation": {
+ "id": 16151,
+ "nodeType": "StructuredDocumentation",
+ "src": "3424:79:39",
+ "text": "@custom:storage-location erc7201:polygonid.storage.PassportCredentialIssuer"
+ },
+ "id": 16181,
+ "members": [
+ {
+ "constant": false,
+ "id": 16153,
+ "mutability": "mutable",
+ "name": "_expirationTime",
+ "nameLocation": "3565:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3557:23:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16152,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3557:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16155,
+ "mutability": "mutable",
+ "name": "_templateRoot",
+ "nameLocation": "3598:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3590:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16154,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3590:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16157,
+ "mutability": "mutable",
+ "name": "_maxFutureTime",
+ "nameLocation": "3629:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3621:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16156,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3621:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16161,
+ "mutability": "mutable",
+ "name": "_credentialVerifiers",
+ "nameLocation": "3699:20:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3653:66:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string => address)"
+ },
+ "typeName": {
+ "id": 16160,
+ "keyName": "circuitId",
+ "keyNameLocation": "3668:9:39",
+ "keyType": {
+ "id": 16158,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3661:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "3653:45:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string => address)"
+ },
+ "valueName": "verifier",
+ "valueNameLocation": "3689:8:39",
+ "valueType": {
+ "id": 16159,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3681:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16164,
+ "mutability": "mutable",
+ "name": "_signers",
+ "nameLocation": "3754:8:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3729:33:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 16163,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16162,
+ "name": "EnumerableSet.AddressSet",
+ "nameLocations": [
+ "3729:13:39",
+ "3743:10:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "3729:24:39"
+ },
+ "referencedDeclaration": 12653,
+ "src": "3729:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16167,
+ "mutability": "mutable",
+ "name": "_attestationValidator",
+ "nameLocation": "3794:21:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3772:43:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ },
+ "typeName": {
+ "id": 16166,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16165,
+ "name": "IAttestationValidator",
+ "nameLocations": [
+ "3772:21:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14634,
+ "src": "3772:21:39"
+ },
+ "referencedDeclaration": 14634,
+ "src": "3772:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16171,
+ "mutability": "mutable",
+ "name": "_imageHashesWhitelist",
+ "nameLocation": "3871:21:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3825:67:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
+ "typeString": "mapping(bytes32 => bool)"
+ },
+ "typeName": {
+ "id": 16170,
+ "keyName": "imageHash",
+ "keyNameLocation": "3841:9:39",
+ "keyType": {
+ "id": 16168,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "3833:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "3825:45:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
+ "typeString": "mapping(bytes32 => bool)"
+ },
+ "valueName": "isApproved",
+ "valueNameLocation": "3859:10:39",
+ "valueType": {
+ "id": 16169,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3854:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16174,
+ "mutability": "mutable",
+ "name": "_transactors",
+ "nameLocation": "3927:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3902:37:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ },
+ "typeName": {
+ "id": 16173,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16172,
+ "name": "EnumerableSet.AddressSet",
+ "nameLocations": [
+ "3902:13:39",
+ "3916:10:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 12653,
+ "src": "3902:24:39"
+ },
+ "referencedDeclaration": 12653,
+ "src": "3902:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr",
+ "typeString": "struct EnumerableSet.AddressSet"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16178,
+ "mutability": "mutable",
+ "name": "_nullifiersToRevocationNonce",
+ "nameLocation": "4002:28:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "3949:81:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ },
+ "typeName": {
+ "id": 16177,
+ "keyName": "nullifier",
+ "keyNameLocation": "3965:9:39",
+ "keyType": {
+ "id": 16175,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3957:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "3949:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ },
+ "valueName": "revocationNonce",
+ "valueNameLocation": "3985:15:39",
+ "valueType": {
+ "id": 16176,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "3978:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16180,
+ "mutability": "mutable",
+ "name": "_issuerDidHash",
+ "nameLocation": "4048:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16181,
+ "src": "4040:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16179,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4040:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocation": "3515:31:39",
+ "nodeType": "StructDefinition",
+ "scope": 17540,
+ "src": "3508:561:39",
+ "visibility": "public"
+ },
+ {
+ "constant": true,
+ "id": 16184,
+ "mutability": "constant",
+ "name": "PassportCredentialIssuerStorageLocation",
+ "nameLocation": "4275:39:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17540,
+ "src": "4250:141:39",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16182,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4250:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "hexValue": "307834303564373366323531656436633939376231633039376334366432663833306339343636323665353130633132333436643830653763356134646164333030",
+ "id": 16183,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4325:66:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_29113139320118379246732773932274733016273694324052627283824947655604256297728_by_1",
+ "typeString": "int_const 2911...(69 digits omitted)...7728"
+ },
+ "value": "0x405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad300"
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 16191,
+ "nodeType": "Block",
+ "src": "4542:102:39",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4561:77:39",
+ "nodeType": "YulBlock",
+ "src": "4561:77:39",
+ "statements": [
+ {
+ "nativeSrc": "4575:53:39",
+ "nodeType": "YulAssignment",
+ "src": "4575:53:39",
+ "value": {
+ "name": "PassportCredentialIssuerStorageLocation",
+ "nativeSrc": "4589:39:39",
+ "nodeType": "YulIdentifier",
+ "src": "4589:39:39"
+ },
+ "variableNames": [
+ {
+ "name": "store.slot",
+ "nativeSrc": "4575:10:39",
+ "nodeType": "YulIdentifier",
+ "src": "4575:10:39"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 16184,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4589:39:39",
+ "valueSize": 1
+ },
+ {
+ "declaration": 16188,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "4575:10:39",
+ "suffix": "slot",
+ "valueSize": 1
+ }
+ ],
+ "id": 16190,
+ "nodeType": "InlineAssembly",
+ "src": "4552:86:39"
+ }
+ ]
+ },
+ "id": 16192,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_getPassportCredentialIssuerStorage",
+ "nameLocation": "4407:35:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16185,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4442:2:39"
+ },
+ "returnParameters": {
+ "id": 16189,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16188,
+ "mutability": "mutable",
+ "name": "store",
+ "nameLocation": "4531:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16192,
+ "src": "4491:45:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16187,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16186,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "4491:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "4491:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "4491:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4490:47:39"
+ },
+ "scope": 17540,
+ "src": "4398:246:39",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16193,
+ "nodeType": "StructuredDocumentation",
+ "src": "4650:208:39",
+ "text": " @notice Emitted when a credential circuit verifier is updated.\n @param circuitId The credential circuit id.\n @param verifier The new verifier address for the credential circuit."
+ },
+ "eventSelector": "5d864db8d88e9085fd5e7752a2094701e558355b75b561c00174d27aefd3e289",
+ "id": 16199,
+ "name": "CredentialCircuitVerifierUpdated",
+ "nameLocation": "4869:32:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16198,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16195,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "4909:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16199,
+ "src": "4902:16:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16194,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4902:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16197,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "verifier",
+ "nameLocation": "4928:8:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16199,
+ "src": "4920:16:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16196,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4920:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4901:36:39"
+ },
+ "src": "4863:75:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16200,
+ "nodeType": "StructuredDocumentation",
+ "src": "4943:125:39",
+ "text": " @notice Emitted when the expiration time is updated.\n @param expirationTime The new expiration time."
+ },
+ "eventSelector": "7f7f3071c3c286700c199acae2fe071beb4a63dae1afff85186fa75d18090ae8",
+ "id": 16204,
+ "name": "ExpirationTimeUpdated",
+ "nameLocation": "5079:21:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16203,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16202,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "expirationTime",
+ "nameLocation": "5109:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16204,
+ "src": "5101:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16201,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5101:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5100:24:39"
+ },
+ "src": "5073:52:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16205,
+ "nodeType": "StructuredDocumentation",
+ "src": "5130:118:39",
+ "text": " @notice Emitted when the template root is updated.\n @param tampletRoot The new template root."
+ },
+ "eventSelector": "f007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f069282267734",
+ "id": 16209,
+ "name": "TemplateRootUpdated",
+ "nameLocation": "5259:19:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16208,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16207,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "tampletRoot",
+ "nameLocation": "5287:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16209,
+ "src": "5279:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16206,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5279:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5278:21:39"
+ },
+ "src": "5253:47:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16210,
+ "nodeType": "StructuredDocumentation",
+ "src": "5305:103:39",
+ "text": " @notice Emitted when a new signer is added.\n @param signer The signer address."
+ },
+ "eventSelector": "47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24",
+ "id": 16214,
+ "name": "SignerAdded",
+ "nameLocation": "5419:11:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16213,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16212,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "signer",
+ "nameLocation": "5439:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16214,
+ "src": "5431:14:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16211,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5431:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5430:16:39"
+ },
+ "src": "5413:34:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16215,
+ "nodeType": "StructuredDocumentation",
+ "src": "5452:115:39",
+ "text": " @notice Emitted when a new transactor is added.\n @param transactor The transactor address."
+ },
+ "eventSelector": "0a33c33ca5c931f5cbdaa4137c8b7f3ea632aa05390959f913c410776733061b",
+ "id": 16219,
+ "name": "TransactorAdded",
+ "nameLocation": "5578:15:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16218,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16217,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "transactor",
+ "nameLocation": "5602:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16219,
+ "src": "5594:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16216,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5594:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5593:20:39"
+ },
+ "src": "5572:42:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16220,
+ "nodeType": "StructuredDocumentation",
+ "src": "5619:142:39",
+ "text": " @notice Emitted when a credential is revoked.\n @param revocationNonce The revocation nonce of the revoked credential."
+ },
+ "eventSelector": "725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2",
+ "id": 16226,
+ "name": "CredentialRevoked",
+ "nameLocation": "5772:17:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16225,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16222,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "5798:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16226,
+ "src": "5790:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16221,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5790:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16224,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "5816:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16226,
+ "src": "5809:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 16223,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "5809:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5789:43:39"
+ },
+ "src": "5766:67:39"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 16227,
+ "nodeType": "StructuredDocumentation",
+ "src": "5838:124:39",
+ "text": " @notice Emitted when the max future time is updated.\n @param maxFutureTime The new max future time."
+ },
+ "eventSelector": "73293f7b4f3fe4eeb423f647c95d70844d99749a80c8a93aa4c3d4996a63bc4a",
+ "id": 16231,
+ "name": "MaxFutureTimeUpdated",
+ "nameLocation": "5973:20:39",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 16230,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16229,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "maxFutureTime",
+ "nameLocation": "6002:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16231,
+ "src": "5994:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16228,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5994:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5993:23:39"
+ },
+ "src": "5967:50:39"
+ },
+ {
+ "body": {
+ "id": 16238,
+ "nodeType": "Block",
+ "src": "6323:39:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16235,
+ "name": "_disableInitializers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5190,
+ "src": "6333:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
+ "typeString": "function ()"
+ }
+ },
+ "id": 16236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6333:22:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16237,
+ "nodeType": "ExpressionStatement",
+ "src": "6333:22:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16232,
+ "nodeType": "StructuredDocumentation",
+ "src": "6163:141:39",
+ "text": " @notice Constructor that disables initializers.\n @dev Prevents direct initialization of the implementation contract."
+ },
+ "id": 16239,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16233,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6320:2:39"
+ },
+ "returnParameters": {
+ "id": 16234,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6323:0:39"
+ },
+ "scope": 17540,
+ "src": "6309:53:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16246,
+ "nodeType": "Block",
+ "src": "6479:46:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16242,
+ "name": "_checkTransactor",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16915,
+ "src": "6489:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 16243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6489:18:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16244,
+ "nodeType": "ExpressionStatement",
+ "src": "6489:18:39"
+ },
+ {
+ "id": 16245,
+ "nodeType": "PlaceholderStatement",
+ "src": "6517:1:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16240,
+ "nodeType": "StructuredDocumentation",
+ "src": "6368:79:39",
+ "text": " @dev Throws if called by any account other than transactors."
+ },
+ "id": 16247,
+ "name": "onlyTransactors",
+ "nameLocation": "6461:15:39",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 16241,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6476:2:39"
+ },
+ "src": "6452:73:39",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 16325,
+ "nodeType": "Block",
+ "src": "7021:516:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 16275,
+ "name": "stateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16262,
+ "src": "7048:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr",
+ "typeString": "struct PassportCredentialIssuer.StateInfo calldata"
+ }
+ },
+ "id": 16276,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7058:12:39",
+ "memberName": "stateAddress",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16114,
+ "src": "7048:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 16277,
+ "name": "stateInfo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16262,
+ "src": "7072:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr",
+ "typeString": "struct PassportCredentialIssuer.StateInfo calldata"
+ }
+ },
+ "id": 16278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7082:6:39",
+ "memberName": "idType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16116,
+ "src": "7072:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_bytes2",
+ "typeString": "bytes2"
+ }
+ ],
+ "expression": {
+ "id": 16272,
+ "name": "super",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -25,
+ "src": "7031:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_super$_PassportCredentialIssuer_$17540_$",
+ "typeString": "type(contract super PassportCredentialIssuer)"
+ }
+ },
+ "id": 16274,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7037:10:39",
+ "memberName": "initialize",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 887,
+ "src": "7031:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes2_$returns$__$",
+ "typeString": "function (address,bytes2)"
+ }
+ },
+ "id": 16279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7031:58:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16280,
+ "nodeType": "ExpressionStatement",
+ "src": "7031:58:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16282,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16264,
+ "src": "7114:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 16281,
+ "name": "__Ownable_init",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4828,
+ "src": "7099:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 16283,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7099:21:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16284,
+ "nodeType": "ExpressionStatement",
+ "src": "7099:21:39"
+ },
+ {
+ "assignments": [
+ 16287
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16287,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "7171:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16325,
+ "src": "7131:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16286,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16285,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "7131:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "7131:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "7131:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16290,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16288,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "7175:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16289,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7175:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7131:81:39"
+ },
+ {
+ "expression": {
+ "id": 16295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 16291,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16287,
+ "src": "7222:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16293,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "7224:15:39",
+ "memberName": "_expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16153,
+ "src": "7222:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16294,
+ "name": "expirationTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16249,
+ "src": "7242:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7222:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16296,
+ "nodeType": "ExpressionStatement",
+ "src": "7222:34:39"
+ },
+ {
+ "expression": {
+ "id": 16301,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 16297,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16287,
+ "src": "7266:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16299,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "7268:14:39",
+ "memberName": "_maxFutureTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16157,
+ "src": "7266:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16300,
+ "name": "maxFutureTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16251,
+ "src": "7285:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7266:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16302,
+ "nodeType": "ExpressionStatement",
+ "src": "7266:32:39"
+ },
+ {
+ "expression": {
+ "id": 16307,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 16303,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16287,
+ "src": "7308:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16305,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "7310:13:39",
+ "memberName": "_templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16155,
+ "src": "7308:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16306,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16253,
+ "src": "7326:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7308:30:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16308,
+ "nodeType": "ExpressionStatement",
+ "src": "7308:30:39"
+ },
+ {
+ "expression": {
+ "id": 16313,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "id": 16309,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16287,
+ "src": "7348:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16311,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "7350:21:39",
+ "memberName": "_attestationValidator",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16167,
+ "src": "7348:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16312,
+ "name": "validator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16267,
+ "src": "7374:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "src": "7348:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "id": 16314,
+ "nodeType": "ExpressionStatement",
+ "src": "7348:35:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "50617373706f72744973737565725631",
+ "id": 16316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7408:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_39b7842762054a1672fa4ad18f0be0be0b101b3f649bbca02fcf4d0864b1279e",
+ "typeString": "literal_string \"PassportIssuerV1\""
+ },
+ "value": "PassportIssuerV1"
+ },
+ {
+ "id": 16317,
+ "name": "DOMAIN_VERSION",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16103,
+ "src": "7428:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_39b7842762054a1672fa4ad18f0be0be0b101b3f649bbca02fcf4d0864b1279e",
+ "typeString": "literal_string \"PassportIssuerV1\""
+ },
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 16315,
+ "name": "__EIP712_init",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5339,
+ "src": "7394:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory,string memory)"
+ }
+ },
+ "id": 16318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7394:49:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16319,
+ "nodeType": "ExpressionStatement",
+ "src": "7394:49:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16321,
+ "name": "credentialCircuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16256,
+ "src": "7480:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ {
+ "id": 16322,
+ "name": "credentialVerifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16259,
+ "src": "7502:27:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ ],
+ "id": 16320,
+ "name": "_updateCredentialVerifiers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17483,
+ "src": "7453:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (string calldata[] calldata,address[] calldata)"
+ }
+ },
+ "id": 16323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7453:77:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16324,
+ "nodeType": "ExpressionStatement",
+ "src": "7453:77:39"
+ }
+ ]
+ },
+ "functionSelector": "e633436f",
+ "id": 16326,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16270,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16269,
+ "name": "initializer",
+ "nameLocations": [
+ "7009:11:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 5076,
+ "src": "7009:11:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "7009:11:39"
+ }
+ ],
+ "name": "initializeIssuer",
+ "nameLocation": "6680:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16268,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16249,
+ "mutability": "mutable",
+ "name": "expirationTime",
+ "nameLocation": "6714:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6706:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16248,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6706:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16251,
+ "mutability": "mutable",
+ "name": "maxFutureTime",
+ "nameLocation": "6746:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6738:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16250,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6738:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16253,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "6777:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6769:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16252,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6769:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16256,
+ "mutability": "mutable",
+ "name": "credentialCircuitIds",
+ "nameLocation": "6817:20:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6799:38:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16254,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "6799:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 16255,
+ "nodeType": "ArrayTypeName",
+ "src": "6799:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16259,
+ "mutability": "mutable",
+ "name": "credentialVerifierAddresses",
+ "nameLocation": "6866:27:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6847:46:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16257,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6847:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 16258,
+ "nodeType": "ArrayTypeName",
+ "src": "6847:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16262,
+ "mutability": "mutable",
+ "name": "stateInfo",
+ "nameLocation": "6922:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6903:28:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr",
+ "typeString": "struct PassportCredentialIssuer.StateInfo"
+ },
+ "typeName": {
+ "id": 16261,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16260,
+ "name": "StateInfo",
+ "nameLocations": [
+ "6903:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16117,
+ "src": "6903:9:39"
+ },
+ "referencedDeclaration": 16117,
+ "src": "6903:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_StateInfo_$16117_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.StateInfo"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16264,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "6949:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6941:13:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16263,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6941:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16267,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "6986:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16326,
+ "src": "6964:31:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ },
+ "typeName": {
+ "id": 16266,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16265,
+ "name": "IAttestationValidator",
+ "nameLocations": [
+ "6964:21:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14634,
+ "src": "6964:21:39"
+ },
+ "referencedDeclaration": 14634,
+ "src": "6964:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6696:305:39"
+ },
+ "returnParameters": {
+ "id": 16271,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7021:0:39"
+ },
+ "scope": 17540,
+ "src": "6671:866:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16404,
+ "nodeType": "Block",
+ "src": "7611:909:39",
+ "statements": [
+ {
+ "assignments": [
+ 16335
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16335,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "7661:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16404,
+ "src": "7621:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16334,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16333,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "7621:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "7621:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "7621:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16338,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16336,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "7665:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16337,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7665:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7621:81:39"
+ },
+ {
+ "assignments": [
+ 16340,
+ 16342,
+ 16344
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16340,
+ "mutability": "mutable",
+ "name": "userData",
+ "nameLocation": "7727:8:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16404,
+ "src": "7714:21:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 16339,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7714:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16342,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "7745:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16404,
+ "src": "7737:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16341,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7737:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16344,
+ "mutability": "mutable",
+ "name": "validated",
+ "nameLocation": "7761:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16404,
+ "src": "7756:14:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 16343,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7756:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16350,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 16348,
+ "name": "attestation",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16328,
+ "src": "7844:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 16345,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16335,
+ "src": "7774:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16346,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7789:21:39",
+ "memberName": "_attestationValidator",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16167,
+ "src": "7774:36:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "id": 16347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "7824:19:39",
+ "memberName": "validateAttestation",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14617,
+ "src": "7774:69:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$_t_bytes32_$_t_bool_$",
+ "typeString": "function (bytes memory) external returns (bytes memory,bytes32,bool)"
+ }
+ },
+ "id": 16349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7774:82:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bytes_memory_ptr_$_t_bytes32_$_t_bool_$",
+ "typeString": "tuple(bytes memory,bytes32,bool)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "7713:143:39"
+ },
+ {
+ "condition": {
+ "id": 16354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "7871:34:39",
+ "subExpression": {
+ "arguments": [
+ {
+ "id": 16352,
+ "name": "imageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16342,
+ "src": "7895:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 16351,
+ "name": "isWhitelistedImageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16804,
+ "src": "7872:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
+ "typeString": "function (bytes32) view returns (bool)"
+ }
+ },
+ "id": 16353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7872:33:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16360,
+ "nodeType": "IfStatement",
+ "src": "7867:108:39",
+ "trueBody": {
+ "id": 16359,
+ "nodeType": "Block",
+ "src": "7907:68:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16356,
+ "name": "imageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16342,
+ "src": "7954:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 16355,
+ "name": "ImageHashIsNotWhitelisted",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16062,
+ "src": "7928:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$",
+ "typeString": "function (bytes32) pure returns (error)"
+ }
+ },
+ "id": 16357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7928:36:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16358,
+ "nodeType": "RevertStatement",
+ "src": "7921:43:39"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "id": 16362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "7989:10:39",
+ "subExpression": {
+ "id": 16361,
+ "name": "validated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16344,
+ "src": "7990:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16367,
+ "nodeType": "IfStatement",
+ "src": "7985:68:39",
+ "trueBody": {
+ "id": 16366,
+ "nodeType": "Block",
+ "src": "8001:52:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16363,
+ "name": "InvalidAttestation",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16064,
+ "src": "8022:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 16364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8022:20:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16365,
+ "nodeType": "RevertStatement",
+ "src": "8015:27:39"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 16368,
+ "name": "userData",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16340,
+ "src": "8067:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 16369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8076:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "8067:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "hexValue": "3230",
+ "id": 16370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8085:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20_by_1",
+ "typeString": "int_const 20"
+ },
+ "value": "20"
+ },
+ "src": "8067:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16376,
+ "nodeType": "IfStatement",
+ "src": "8063:92:39",
+ "trueBody": {
+ "id": 16375,
+ "nodeType": "Block",
+ "src": "8089:66:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16372,
+ "name": "InvalidAttestationUserDataLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16068,
+ "src": "8110:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 16373,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8110:34:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16374,
+ "nodeType": "RevertStatement",
+ "src": "8103:41:39"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 16378
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16378,
+ "mutability": "mutable",
+ "name": "userDataDecoded",
+ "nameLocation": "8204:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16404,
+ "src": "8196:23:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16377,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8196:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16379,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8196:23:39"
+ },
+ {
+ "AST": {
+ "nativeSrc": "8238:67:39",
+ "nodeType": "YulBlock",
+ "src": "8238:67:39",
+ "statements": [
+ {
+ "nativeSrc": "8252:43:39",
+ "nodeType": "YulAssignment",
+ "src": "8252:43:39",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "userData",
+ "nativeSrc": "8281:8:39",
+ "nodeType": "YulIdentifier",
+ "src": "8281:8:39"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8291:2:39",
+ "nodeType": "YulLiteral",
+ "src": "8291:2:39",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8277:3:39",
+ "nodeType": "YulIdentifier",
+ "src": "8277:3:39"
+ },
+ "nativeSrc": "8277:17:39",
+ "nodeType": "YulFunctionCall",
+ "src": "8277:17:39"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8271:5:39",
+ "nodeType": "YulIdentifier",
+ "src": "8271:5:39"
+ },
+ "nativeSrc": "8271:24:39",
+ "nodeType": "YulFunctionCall",
+ "src": "8271:24:39"
+ },
+ "variableNames": [
+ {
+ "name": "userDataDecoded",
+ "nativeSrc": "8252:15:39",
+ "nodeType": "YulIdentifier",
+ "src": "8252:15:39"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 16340,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8281:8:39",
+ "valueSize": 1
+ },
+ {
+ "declaration": 16378,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8252:15:39",
+ "valueSize": 1
+ }
+ ],
+ "id": 16380,
+ "nodeType": "InlineAssembly",
+ "src": "8229:76:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 16386,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16381,
+ "name": "userDataDecoded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16378,
+ "src": "8319:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 16384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8346: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": 16383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8338:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 16382,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8338:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16385,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8338:10:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "8319:29:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16391,
+ "nodeType": "IfStatement",
+ "src": "8315:89:39",
+ "trueBody": {
+ "id": 16390,
+ "nodeType": "Block",
+ "src": "8350:54:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16387,
+ "name": "InvalidSignerAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16066,
+ "src": "8371:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 16388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8371:22:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16389,
+ "nodeType": "RevertStatement",
+ "src": "8364:29:39"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16397,
+ "name": "userDataDecoded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16378,
+ "src": "8454:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 16392,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16335,
+ "src": "8439:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16395,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8441:8:39",
+ "memberName": "_signers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16164,
+ "src": "8439:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16396,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8450:3:39",
+ "memberName": "add",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12680,
+ "src": "8439:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"
+ }
+ },
+ "id": 16398,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8439:31:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16399,
+ "nodeType": "ExpressionStatement",
+ "src": "8439:31:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16401,
+ "name": "userDataDecoded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16378,
+ "src": "8497:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 16400,
+ "name": "SignerAdded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16214,
+ "src": "8485:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 16402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8485:28:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16403,
+ "nodeType": "EmitStatement",
+ "src": "8480:33:39"
+ }
+ ]
+ },
+ "functionSelector": "76ee7b49",
+ "id": 16405,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16331,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16330,
+ "name": "onlyTransactors",
+ "nameLocations": [
+ "7595:15:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16247,
+ "src": "7595:15:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "7595:15:39"
+ }
+ ],
+ "name": "addSigner",
+ "nameLocation": "7552:9:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16329,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16328,
+ "mutability": "mutable",
+ "name": "attestation",
+ "nameLocation": "7575:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16405,
+ "src": "7562:24:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 16327,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "7562:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7561:26:39"
+ },
+ "returnParameters": {
+ "id": 16332,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7611:0:39"
+ },
+ "scope": 17540,
+ "src": "7543:977:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16418,
+ "nodeType": "Block",
+ "src": "8643:79:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16412,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "8660:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16413,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8660:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16414,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8698:8:39",
+ "memberName": "_signers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16164,
+ "src": "8660:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16415,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8707:6:39",
+ "memberName": "values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12819,
+ "src": "8660:53:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"
+ }
+ },
+ "id": 16416,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8660:55:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "functionReturnParameters": 16411,
+ "id": 16417,
+ "nodeType": "Return",
+ "src": "8653:62:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16406,
+ "nodeType": "StructuredDocumentation",
+ "src": "8526:49:39",
+ "text": " @notice Retrieves the signers."
+ },
+ "functionSelector": "94cf795e",
+ "id": 16419,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getSigners",
+ "nameLocation": "8589:10:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16407,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8599:2:39"
+ },
+ "returnParameters": {
+ "id": 16411,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16410,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16419,
+ "src": "8625:16:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16408,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8625:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 16409,
+ "nodeType": "ArrayTypeName",
+ "src": "8625:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8624:18:39"
+ },
+ "scope": 17540,
+ "src": "8580:142:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16444,
+ "nodeType": "Block",
+ "src": "8788:180:39",
+ "statements": [
+ {
+ "assignments": [
+ 16428
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16428,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "8838:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16444,
+ "src": "8798:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16427,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16426,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "8798:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "8798:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "8798:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16431,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16429,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "8842:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16430,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8842:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "8798:81:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16437,
+ "name": "transactor",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16421,
+ "src": "8908:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "id": 16432,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16428,
+ "src": "8889:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16435,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8891:12:39",
+ "memberName": "_transactors",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16174,
+ "src": "8889:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16436,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "8904:3:39",
+ "memberName": "add",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12680,
+ "src": "8889:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"
+ }
+ },
+ "id": 16438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8889:30:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16439,
+ "nodeType": "ExpressionStatement",
+ "src": "8889:30:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16441,
+ "name": "transactor",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16421,
+ "src": "8950:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 16440,
+ "name": "TransactorAdded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16219,
+ "src": "8934:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
+ "typeString": "function (address)"
+ }
+ },
+ "id": 16442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8934:27:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16443,
+ "nodeType": "EmitStatement",
+ "src": "8929:32:39"
+ }
+ ]
+ },
+ "functionSelector": "70f4f9df",
+ "id": 16445,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16424,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16423,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "8778:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "8778:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "8778:9:39"
+ }
+ ],
+ "name": "addTransactor",
+ "nameLocation": "8737:13:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16422,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16421,
+ "mutability": "mutable",
+ "name": "transactor",
+ "nameLocation": "8759:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16445,
+ "src": "8751:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16420,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8751:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8750:20:39"
+ },
+ "returnParameters": {
+ "id": 16425,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8788:0:39"
+ },
+ "scope": 17540,
+ "src": "8728:240:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16458,
+ "nodeType": "Block",
+ "src": "9099:83:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16452,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "9116:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9116:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16454,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9154:12:39",
+ "memberName": "_transactors",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16174,
+ "src": "9116:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16455,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9167:6:39",
+ "memberName": "values",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12819,
+ "src": "9116:57:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"
+ }
+ },
+ "id": 16456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9116:59:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "functionReturnParameters": 16451,
+ "id": 16457,
+ "nodeType": "Return",
+ "src": "9109:66:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16446,
+ "nodeType": "StructuredDocumentation",
+ "src": "8974:53:39",
+ "text": " @notice Retrieves the transactors."
+ },
+ "functionSelector": "2d26b309",
+ "id": 16459,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTransactors",
+ "nameLocation": "9041:14:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16447,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9055:2:39"
+ },
+ "returnParameters": {
+ "id": 16451,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16450,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16459,
+ "src": "9081:16:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16448,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9081:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 16449,
+ "nodeType": "ArrayTypeName",
+ "src": "9081:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9080:18:39"
+ },
+ "scope": 17540,
+ "src": "9032:150:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16469,
+ "nodeType": "Block",
+ "src": "9355:77:39",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16465,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "9372:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9372:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16467,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9410:15:39",
+ "memberName": "_expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16153,
+ "src": "9372:53:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 16464,
+ "id": 16468,
+ "nodeType": "Return",
+ "src": "9365:60:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16460,
+ "nodeType": "StructuredDocumentation",
+ "src": "9188:93:39",
+ "text": " @notice Retrieves the expiration time.\n @return The expiration time."
+ },
+ "functionSelector": "e23a845a",
+ "id": 16470,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getExpirationTime",
+ "nameLocation": "9295:17:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16461,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9312:2:39"
+ },
+ "returnParameters": {
+ "id": 16464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16463,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16470,
+ "src": "9346:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16462,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9346:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9345:9:39"
+ },
+ "scope": 17540,
+ "src": "9286:146:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16488,
+ "nodeType": "Block",
+ "src": "9619:139:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16482,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16478,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "9629:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9629:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16480,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "9667:15:39",
+ "memberName": "_expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16153,
+ "src": "9629:53:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16481,
+ "name": "expirationTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16473,
+ "src": "9685:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9629:70:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16483,
+ "nodeType": "ExpressionStatement",
+ "src": "9629:70:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16485,
+ "name": "expirationTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16473,
+ "src": "9736:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16484,
+ "name": "ExpirationTimeUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16204,
+ "src": "9714:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 16486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9714:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16487,
+ "nodeType": "EmitStatement",
+ "src": "9709:42:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16471,
+ "nodeType": "StructuredDocumentation",
+ "src": "9438:106:39",
+ "text": " @notice Sets the expiration time.\n @param expirationTime The new expiration time."
+ },
+ "functionSelector": "c0cc365d",
+ "id": 16489,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16476,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16475,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "9609:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "9609:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "9609:9:39"
+ }
+ ],
+ "name": "setExpirationTime",
+ "nameLocation": "9558:17:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16474,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16473,
+ "mutability": "mutable",
+ "name": "expirationTime",
+ "nameLocation": "9584:14:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16489,
+ "src": "9576:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16472,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9576:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9575:24:39"
+ },
+ "returnParameters": {
+ "id": 16477,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9619:0:39"
+ },
+ "scope": 17540,
+ "src": "9549:209:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16499,
+ "nodeType": "Block",
+ "src": "9925:75:39",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16495,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "9942:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9942:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16497,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9980:13:39",
+ "memberName": "_templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16155,
+ "src": "9942:51:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 16494,
+ "id": 16498,
+ "nodeType": "Return",
+ "src": "9935:58:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16490,
+ "nodeType": "StructuredDocumentation",
+ "src": "9764:89:39",
+ "text": " @notice Retrieves the template root.\n @return The template root."
+ },
+ "functionSelector": "2c1d3204",
+ "id": 16500,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTemplateRoot",
+ "nameLocation": "9867:15:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16491,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9882:2:39"
+ },
+ "returnParameters": {
+ "id": 16494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16493,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16500,
+ "src": "9916:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16492,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9916:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9915:9:39"
+ },
+ "scope": 17540,
+ "src": "9858:142:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16518,
+ "nodeType": "Block",
+ "src": "10177:131:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16512,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16508,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "10187:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10187:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16510,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "10225:13:39",
+ "memberName": "_templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16155,
+ "src": "10187:51:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16511,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16503,
+ "src": "10241:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10187:66:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16513,
+ "nodeType": "ExpressionStatement",
+ "src": "10187:66:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16515,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16503,
+ "src": "10288:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16514,
+ "name": "TemplateRootUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16209,
+ "src": "10268:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 16516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10268:33:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16517,
+ "nodeType": "EmitStatement",
+ "src": "10263:38:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16501,
+ "nodeType": "StructuredDocumentation",
+ "src": "10006:100:39",
+ "text": " @notice Sets the template root.\n @param templateRoot The new template root."
+ },
+ "functionSelector": "b354c2d8",
+ "id": 16519,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16506,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16505,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "10167:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "10167:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "10167:9:39"
+ }
+ ],
+ "name": "setTemplateRoot",
+ "nameLocation": "10120:15:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16504,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16503,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "10144:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16519,
+ "src": "10136:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16502,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10136:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10135:22:39"
+ },
+ "returnParameters": {
+ "id": 16507,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10177:0:39"
+ },
+ "scope": 17540,
+ "src": "10111:197:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16529,
+ "nodeType": "Block",
+ "src": "10480:76:39",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16525,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "10497:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16526,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10497:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16527,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "10535:14:39",
+ "memberName": "_maxFutureTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16157,
+ "src": "10497:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 16524,
+ "id": 16528,
+ "nodeType": "Return",
+ "src": "10490:59:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16520,
+ "nodeType": "StructuredDocumentation",
+ "src": "10314:93:39",
+ "text": " @notice Retrieves the max future time.\n @return The max future time."
+ },
+ "functionSelector": "76dfc776",
+ "id": 16530,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getMaxFutureTime",
+ "nameLocation": "10421:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16521,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10437:2:39"
+ },
+ "returnParameters": {
+ "id": 16524,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16523,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16530,
+ "src": "10471:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16522,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10471:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10470:9:39"
+ },
+ "scope": 17540,
+ "src": "10412:144:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16548,
+ "nodeType": "Block",
+ "src": "10740:135:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16542,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16538,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "10750:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10750:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16540,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "10788:14:39",
+ "memberName": "_maxFutureTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16157,
+ "src": "10750:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16541,
+ "name": "maxFutureTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16533,
+ "src": "10805:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10750:68:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16543,
+ "nodeType": "ExpressionStatement",
+ "src": "10750:68:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16545,
+ "name": "maxFutureTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16533,
+ "src": "10854:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16544,
+ "name": "MaxFutureTimeUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16231,
+ "src": "10833:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 16546,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10833:35:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16547,
+ "nodeType": "EmitStatement",
+ "src": "10828:40:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16531,
+ "nodeType": "StructuredDocumentation",
+ "src": "10562:105:39",
+ "text": " @notice Sets the max future time.\n @param maxFutureTime The new max future time."
+ },
+ "functionSelector": "2e798ec1",
+ "id": 16549,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16536,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16535,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "10730:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "10730:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "10730:9:39"
+ }
+ ],
+ "name": "setMaxFutureTime",
+ "nameLocation": "10681:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16534,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16533,
+ "mutability": "mutable",
+ "name": "maxFutureTime",
+ "nameLocation": "10706:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16549,
+ "src": "10698:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16532,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10698:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10697:23:39"
+ },
+ "returnParameters": {
+ "id": 16537,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10740:0:39"
+ },
+ "scope": 17540,
+ "src": "10672:203:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16564,
+ "nodeType": "Block",
+ "src": "11068:88:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16558,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "11078:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11078:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16560,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "11116:21:39",
+ "memberName": "_attestationValidator",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16167,
+ "src": "11078:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16561,
+ "name": "validator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16553,
+ "src": "11140:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "src": "11078:71:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "id": 16563,
+ "nodeType": "ExpressionStatement",
+ "src": "11078:71:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16550,
+ "nodeType": "StructuredDocumentation",
+ "src": "10881:97:39",
+ "text": " @dev Set attestation validator\n @param validator - attestation validator"
+ },
+ "functionSelector": "8a684553",
+ "id": 16565,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16556,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16555,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "11058:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "11058:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11058:9:39"
+ }
+ ],
+ "name": "setAttestationValidator",
+ "nameLocation": "10992:23:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16554,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16553,
+ "mutability": "mutable",
+ "name": "validator",
+ "nameLocation": "11038:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16565,
+ "src": "11016:31:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ },
+ "typeName": {
+ "id": 16552,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16551,
+ "name": "IAttestationValidator",
+ "nameLocations": [
+ "11016:21:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14634,
+ "src": "11016:21:39"
+ },
+ "referencedDeclaration": 14634,
+ "src": "11016:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IAttestationValidator_$14634",
+ "typeString": "contract IAttestationValidator"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11015:33:39"
+ },
+ "returnParameters": {
+ "id": 16557,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11068:0:39"
+ },
+ "scope": 17540,
+ "src": "10983:173:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16582,
+ "nodeType": "Block",
+ "src": "11557:74:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16578,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16569,
+ "src": "11594:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ {
+ "id": 16579,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16572,
+ "src": "11606:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ ],
+ "id": 16577,
+ "name": "_updateCredentialVerifiers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17483,
+ "src": "11567:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$",
+ "typeString": "function (string calldata[] calldata,address[] calldata)"
+ }
+ },
+ "id": 16580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11567:57:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16581,
+ "nodeType": "ExpressionStatement",
+ "src": "11567:57:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16566,
+ "nodeType": "StructuredDocumentation",
+ "src": "11162:240:39",
+ "text": " @dev Updates the credential circuit verifiers for a specific circuit identifiers.\n @param circuitIds The credential circuit identifiers.\n @param verifierAddresses The new credential circuit verifier addresses."
+ },
+ "functionSelector": "badf055d",
+ "id": 16583,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16575,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16574,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "11547:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "11547:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "11547:9:39"
+ }
+ ],
+ "name": "updateCredentialVerifiers",
+ "nameLocation": "11416:25:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16573,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16569,
+ "mutability": "mutable",
+ "name": "circuitIds",
+ "nameLocation": "11469:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16583,
+ "src": "11451:28:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16567,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "11451:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 16568,
+ "nodeType": "ArrayTypeName",
+ "src": "11451:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16572,
+ "mutability": "mutable",
+ "name": "verifierAddresses",
+ "nameLocation": "11508:17:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16583,
+ "src": "11489:36:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16570,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11489:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 16571,
+ "nodeType": "ArrayTypeName",
+ "src": "11489:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11441:90:39"
+ },
+ "returnParameters": {
+ "id": 16576,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11557:0:39"
+ },
+ "scope": 17540,
+ "src": "11407:224:39",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16597,
+ "nodeType": "Block",
+ "src": "11927:93:39",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16591,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "11944:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "11944:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16593,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "11982:20:39",
+ "memberName": "_credentialVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16161,
+ "src": "11944:58:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 16595,
+ "indexExpression": {
+ "id": 16594,
+ "name": "circuitId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16586,
+ "src": "12003:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "11944:69:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 16590,
+ "id": 16596,
+ "nodeType": "Return",
+ "src": "11937:76:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16584,
+ "nodeType": "StructuredDocumentation",
+ "src": "11637:191:39",
+ "text": " @notice Retrieves the credential verifier address for a given circuit id.\n @param circuitId The circuit id identifier.\n @return The credential verifier address."
+ },
+ "functionSelector": "a635c785",
+ "id": 16598,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "credentialVerifiers",
+ "nameLocation": "11842:19:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16587,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16586,
+ "mutability": "mutable",
+ "name": "circuitId",
+ "nameLocation": "11876:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16598,
+ "src": "11862:23:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16585,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "11862:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11861:25:39"
+ },
+ "returnParameters": {
+ "id": 16590,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16589,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16598,
+ "src": "11918:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16588,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11918:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11917:9:39"
+ },
+ "scope": 17540,
+ "src": "11833:187:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16645,
+ "nodeType": "Block",
+ "src": "12207:397:39",
+ "statements": [
+ {
+ "assignments": [
+ 16608
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16608,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "12257:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16645,
+ "src": "12217:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16607,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16606,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "12217:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "12217:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "12217:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16611,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16609,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "12261:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16610,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12261:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12217:81:39"
+ },
+ {
+ "assignments": [
+ 16613
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16613,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "12315:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16645,
+ "src": "12308:12:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 16612,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "12308:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16618,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 16614,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16608,
+ "src": "12323:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16615,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12325:28:39",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16178,
+ "src": "12323:30:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 16617,
+ "indexExpression": {
+ "id": 16616,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16601,
+ "src": "12354:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12323:41:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12308:56:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 16621,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16619,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16613,
+ "src": "12378:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 16620,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12387:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12378:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16627,
+ "nodeType": "IfStatement",
+ "src": "12374:80:39",
+ "trueBody": {
+ "id": 16626,
+ "nodeType": "Block",
+ "src": "12390:64:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16623,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16601,
+ "src": "12433:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16622,
+ "name": "NullifierDoesNotExist",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16034,
+ "src": "12411:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 16624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12411:32:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16625,
+ "nodeType": "RevertStatement",
+ "src": "12404:39:39"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16629,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16613,
+ "src": "12486:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 16628,
+ "name": "_revokeClaimAndTransit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17172,
+ "src": "12463:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$",
+ "typeString": "function (uint64)"
+ }
+ },
+ "id": 16630,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12463:29:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16631,
+ "nodeType": "ExpressionStatement",
+ "src": "12463:29:39"
+ },
+ {
+ "expression": {
+ "id": 16638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 16632,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16608,
+ "src": "12502:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16635,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12504:28:39",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16178,
+ "src": "12502:30:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 16636,
+ "indexExpression": {
+ "id": 16634,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16601,
+ "src": "12533:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "12502:41:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 16637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12546:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12502:45:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 16639,
+ "nodeType": "ExpressionStatement",
+ "src": "12502:45:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 16641,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16601,
+ "src": "12580:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 16642,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16613,
+ "src": "12591:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 16640,
+ "name": "CredentialRevoked",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16226,
+ "src": "12562:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 16643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12562:35:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16644,
+ "nodeType": "EmitStatement",
+ "src": "12557:40:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16599,
+ "nodeType": "StructuredDocumentation",
+ "src": "12026:112:39",
+ "text": " @notice Revoke credential and remove nullifier.\n @param nullifier credential nullifier."
+ },
+ "functionSelector": "1b87278d",
+ "id": 16646,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16604,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16603,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "12197:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "12197:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "12197:9:39"
+ }
+ ],
+ "name": "revokeCredential",
+ "nameLocation": "12152:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16602,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16601,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "12177:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16646,
+ "src": "12169:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16600,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12169:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12168:19:39"
+ },
+ "returnParameters": {
+ "id": 16605,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12207:0:39"
+ },
+ "scope": 17540,
+ "src": "12143:461:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16666,
+ "nodeType": "Block",
+ "src": "12845:158:39",
+ "statements": [
+ {
+ "assignments": [
+ 16655
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16655,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "12862:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16666,
+ "src": "12855:12:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 16654,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "12855:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16661,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16656,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "12870:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16657,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12870:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16658,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12908:28:39",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16178,
+ "src": "12870:66:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 16660,
+ "indexExpression": {
+ "id": 16659,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16649,
+ "src": "12950:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "12870:99:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12855:114:39"
+ },
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 16664,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16662,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16655,
+ "src": "12986:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 16663,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12995:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "12986:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 16653,
+ "id": 16665,
+ "nodeType": "Return",
+ "src": "12979:17:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16647,
+ "nodeType": "StructuredDocumentation",
+ "src": "12610:157:39",
+ "text": " @notice Retrieves wether the nullifier exists.\n @param nullifier The nullifier to check.\n @return Wether the nullifier exists."
+ },
+ "functionSelector": "2afab62f",
+ "id": 16667,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "nullifierExists",
+ "nameLocation": "12781:15:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16650,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16649,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "12805:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16667,
+ "src": "12797:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16648,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12797:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12796:19:39"
+ },
+ "returnParameters": {
+ "id": 16653,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16652,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16667,
+ "src": "12839:4:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 16651,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12839:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12838:6:39"
+ },
+ "scope": 17540,
+ "src": "12772:231:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16788,
+ "nodeType": "Block",
+ "src": "13379:1254:39",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16683,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 16678,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16671,
+ "src": "13399:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 16679,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13415:9:39",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16130,
+ "src": "13399:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 16677,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13393:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 16676,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "13393:5:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16680,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13393:32:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 16681,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13426:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13393:39:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 16682,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13436:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "13393:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16690,
+ "nodeType": "IfStatement",
+ "src": "13389:135:39",
+ "trueBody": {
+ "id": 16689,
+ "nodeType": "Block",
+ "src": "13439:85:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 16685,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16671,
+ "src": "13487:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 16686,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13503:9:39",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16130,
+ "src": "13487:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 16684,
+ "name": "NoCredentialCircuitIdFound",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16054,
+ "src": "13460:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$",
+ "typeString": "function (string memory) pure returns (error)"
+ }
+ },
+ "id": 16687,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13460:53:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16688,
+ "nodeType": "RevertStatement",
+ "src": "13453:60:39"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 16695,
+ 16699,
+ 16705,
+ 16709
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16695,
+ "mutability": "mutable",
+ "name": "inputs1",
+ "nameLocation": "13565:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "13548:24:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16693,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13548:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16694,
+ "nodeType": "ArrayTypeName",
+ "src": "13548:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16699,
+ "mutability": "mutable",
+ "name": "a1",
+ "nameLocation": "13604:2:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "13586:20:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16696,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13586:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16698,
+ "length": {
+ "hexValue": "32",
+ "id": 16697,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13594:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "13586:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16705,
+ "mutability": "mutable",
+ "name": "b1",
+ "nameLocation": "13641:2:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "13620:23:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 16700,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13620:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16702,
+ "length": {
+ "hexValue": "32",
+ "id": 16701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13628:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "13620:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 16704,
+ "length": {
+ "hexValue": "32",
+ "id": 16703,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13631:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "13620:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16709,
+ "mutability": "mutable",
+ "name": "c1",
+ "nameLocation": "13675:2:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "13657:20:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 16706,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13657:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16708,
+ "length": {
+ "hexValue": "32",
+ "id": 16707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13665:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "13657:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16733,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 16712,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16671,
+ "src": "13701:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 16713,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13717:5:39",
+ "memberName": "proof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16132,
+ "src": "13701:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 16715,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13725:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 16714,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13725:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16716,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13725:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "type(uint256[] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13736:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 16717,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13736:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16720,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 16719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13744:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13736:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 16722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13748:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 16721,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13748:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16724,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 16723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13756:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13748:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ },
+ "id": 16726,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 16725,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13759:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13748:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory[2] memory)"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16728,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "13763:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 16727,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13763:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 16730,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 16729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13771:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "13763:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "type(uint256[2] memory)"
+ }
+ }
+ ],
+ "id": 16731,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "13724:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$",
+ "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$",
+ "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))"
+ }
+ ],
+ "expression": {
+ "id": 16710,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "13690:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 16711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "13694:6:39",
+ "memberName": "decode",
+ "nodeType": "MemberAccess",
+ "src": "13690:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 16732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13690:85:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$",
+ "typeString": "tuple(uint256[] memory,uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13534:241:39"
+ },
+ {
+ "assignments": [
+ 16738
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16738,
+ "mutability": "mutable",
+ "name": "credentialCircuitProof",
+ "nameLocation": "13855:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "13786:91:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ },
+ "typeName": {
+ "id": 16737,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16736,
+ "name": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "nameLocations": [
+ "13786:26:39",
+ "13813:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14684,
+ "src": "13786:49:39"
+ },
+ "referencedDeclaration": 14684,
+ "src": "13786:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16770,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 16741,
+ "name": "a1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16699,
+ "src": "13947:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "id": 16742,
+ "name": "b1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16705,
+ "src": "13967:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ }
+ },
+ {
+ "id": 16743,
+ "name": "c1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16709,
+ "src": "13987:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 16744,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14029:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16746,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 16745,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14037:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14029:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16747,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14061:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16749,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 16748,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14069:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14061:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16750,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14093:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16752,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 16751,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14101:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14093:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16753,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14125:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16755,
+ "indexExpression": {
+ "hexValue": "33",
+ "id": 16754,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14133:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14125:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16756,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14157:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16758,
+ "indexExpression": {
+ "hexValue": "34",
+ "id": 16757,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14165:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14157:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16759,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14189:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16761,
+ "indexExpression": {
+ "hexValue": "35",
+ "id": 16760,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14197:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5_by_1",
+ "typeString": "int_const 5"
+ },
+ "value": "5"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14189:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16762,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14221:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16764,
+ "indexExpression": {
+ "hexValue": "36",
+ "id": 16763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14229:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6_by_1",
+ "typeString": "int_const 6"
+ },
+ "value": "6"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14221:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 16765,
+ "name": "inputs1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16695,
+ "src": "14253:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 16767,
+ "indexExpression": {
+ "hexValue": "37",
+ "id": 16766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14261:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7_by_1",
+ "typeString": "int_const 7"
+ },
+ "value": "7"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14253:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 16768,
+ "isConstant": false,
+ "isInlineArray": true,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "14007:274:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ ],
+ "expression": {
+ "id": 16739,
+ "name": "ICredentialCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14709,
+ "src": "13880:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_ICredentialCircuitVerifier_$14709_$",
+ "typeString": "type(contract ICredentialCircuitVerifier)"
+ }
+ },
+ "id": 16740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13907:22:39",
+ "memberName": "CredentialCircuitProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14684,
+ "src": "13880:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_CredentialCircuitProof_$14684_storage_ptr_$",
+ "typeString": "type(struct ICredentialCircuitVerifier.CredentialCircuitProof storage pointer)"
+ }
+ },
+ "id": 16769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13880:415:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13786:509:39"
+ },
+ {
+ "assignments": [
+ 16773
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16773,
+ "mutability": "mutable",
+ "name": "passportSignatureProofDecoded",
+ "nameLocation": "14336:29:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16788,
+ "src": "14306:59:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ },
+ "typeName": {
+ "id": 16772,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16771,
+ "name": "PassportSignatureProof",
+ "nameLocations": [
+ "14306:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16128,
+ "src": "14306:22:39"
+ },
+ "referencedDeclaration": 16128,
+ "src": "14306:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16780,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 16776,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16673,
+ "src": "14392:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ {
+ "components": [
+ {
+ "id": 16777,
+ "name": "PassportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16128,
+ "src": "14429:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$",
+ "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)"
+ }
+ }
+ ],
+ "id": 16778,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "14428:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$",
+ "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ },
+ {
+ "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$",
+ "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)"
+ }
+ ],
+ "expression": {
+ "id": 16774,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "14368:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 16775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "14372:6:39",
+ "memberName": "decode",
+ "nodeType": "MemberAccess",
+ "src": "14368:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 16779,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14368:94:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14306:156:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 16782,
+ "name": "credentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16671,
+ "src": "14512:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof memory"
+ }
+ },
+ "id": 16783,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14528:9:39",
+ "memberName": "circuitId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16130,
+ "src": "14512:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 16784,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16738,
+ "src": "14551:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ {
+ "id": 16785,
+ "name": "passportSignatureProofDecoded",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16773,
+ "src": "14587:29:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ ],
+ "id": 16781,
+ "name": "_verifyPassportCredential",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16941,
+ "src": "14473:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$",
+ "typeString": "function (string memory,struct ICredentialCircuitVerifier.CredentialCircuitProof memory,struct PassportCredentialIssuer.PassportSignatureProof memory)"
+ }
+ },
+ "id": 16786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14473:153:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16787,
+ "nodeType": "ExpressionStatement",
+ "src": "14473:153:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16668,
+ "nodeType": "StructuredDocumentation",
+ "src": "13009:233:39",
+ "text": " @notice Verifies the passport credential.\n @param credentialProof Credential proof for the passport credential\n @param passportSignatureProof Signature proof of the validation of the passport credential"
+ },
+ "functionSelector": "e7c25d23",
+ "id": 16789,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyPassport",
+ "nameLocation": "13256:14:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16674,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16671,
+ "mutability": "mutable",
+ "name": "credentialProof",
+ "nameLocation": "13303:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16789,
+ "src": "13280:38:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof"
+ },
+ "typeName": {
+ "id": 16670,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16669,
+ "name": "CredentialProof",
+ "nameLocations": [
+ "13280:15:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16133,
+ "src": "13280:15:39"
+ },
+ "referencedDeclaration": 16133,
+ "src": "13280:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialProof_$16133_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.CredentialProof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16673,
+ "mutability": "mutable",
+ "name": "passportSignatureProof",
+ "nameLocation": "13341:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16789,
+ "src": "13328:35:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 16672,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "13328:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13270:99:39"
+ },
+ "returnParameters": {
+ "id": 16675,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13379:0:39"
+ },
+ "scope": 17540,
+ "src": "13247:1386:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16803,
+ "nodeType": "Block",
+ "src": "14929:94:39",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16797,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "14946:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16798,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14946:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16799,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14984:21:39",
+ "memberName": "_imageHashesWhitelist",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16171,
+ "src": "14946:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
+ "typeString": "mapping(bytes32 => bool)"
+ }
+ },
+ "id": 16801,
+ "indexExpression": {
+ "id": 16800,
+ "name": "imageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16792,
+ "src": "15006:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "14946:70:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 16796,
+ "id": 16802,
+ "nodeType": "Return",
+ "src": "14939:77:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16790,
+ "nodeType": "StructuredDocumentation",
+ "src": "14639:199:39",
+ "text": " @dev Checks if imageHash of the enclave is whitelisted\n @param imageHash The imageHash of the enclave\n @return True if imageHash is whitelisted, otherwise returns false"
+ },
+ "functionSelector": "fa78d88c",
+ "id": 16804,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isWhitelistedImageHash",
+ "nameLocation": "14852:22:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16793,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16792,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "14883:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16804,
+ "src": "14875:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16791,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "14875:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14874:19:39"
+ },
+ "returnParameters": {
+ "id": 16796,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16795,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16804,
+ "src": "14923:4:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 16794,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "14923:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14922:6:39"
+ },
+ "scope": 17540,
+ "src": "14843:180:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16820,
+ "nodeType": "Block",
+ "src": "15236:94:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16818,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16812,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "15246:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16813,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15246:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16814,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15284:21:39",
+ "memberName": "_imageHashesWhitelist",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16171,
+ "src": "15246:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
+ "typeString": "mapping(bytes32 => bool)"
+ }
+ },
+ "id": 16816,
+ "indexExpression": {
+ "id": 16815,
+ "name": "imageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16807,
+ "src": "15306:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "15246:70:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 16817,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15319:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "15246:77:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16819,
+ "nodeType": "ExpressionStatement",
+ "src": "15246:77:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16805,
+ "nodeType": "StructuredDocumentation",
+ "src": "15029:133:39",
+ "text": " @dev Adds an imageHash of the enclave to the whitelist\n @param imageHash The imageHash of the enclave to add"
+ },
+ "functionSelector": "8a03c166",
+ "id": 16821,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16810,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16809,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "15226:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "15226:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "15226:9:39"
+ }
+ ],
+ "name": "addImageHashToWhitelist",
+ "nameLocation": "15176:23:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16808,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16807,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "15208:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16821,
+ "src": "15200:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16806,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15200:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15199:19:39"
+ },
+ "returnParameters": {
+ "id": 16811,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "15236:0:39"
+ },
+ "scope": 17540,
+ "src": "15167:163:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16837,
+ "nodeType": "Block",
+ "src": "15556:95:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16829,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "15566:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15566:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16831,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15604:21:39",
+ "memberName": "_imageHashesWhitelist",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16171,
+ "src": "15566:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
+ "typeString": "mapping(bytes32 => bool)"
+ }
+ },
+ "id": 16833,
+ "indexExpression": {
+ "id": 16832,
+ "name": "imageHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16824,
+ "src": "15626:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "15566:70:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 16834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15639:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "15566:78:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16836,
+ "nodeType": "ExpressionStatement",
+ "src": "15566:78:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16822,
+ "nodeType": "StructuredDocumentation",
+ "src": "15336:141:39",
+ "text": " @dev Removes an imageHash of the enclave from the whitelist\n @param imageHash The imageHash of the enclave to remove"
+ },
+ "functionSelector": "23aafe3b",
+ "id": 16838,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16827,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16826,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "15546:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "15546:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "15546:9:39"
+ }
+ ],
+ "name": "removeImageHashFromWhitelist",
+ "nameLocation": "15491:28:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16825,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16824,
+ "mutability": "mutable",
+ "name": "imageHash",
+ "nameLocation": "15528:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16838,
+ "src": "15520:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 16823,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "15520:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15519:19:39"
+ },
+ "returnParameters": {
+ "id": 16828,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "15556:0:39"
+ },
+ "scope": 17540,
+ "src": "15482:169:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 16853,
+ "nodeType": "Block",
+ "src": "15841:78:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16850,
+ "name": "signer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16841,
+ "src": "15905:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16846,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "15851:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15851:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16848,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15889:8:39",
+ "memberName": "_signers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16164,
+ "src": "15851:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16849,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "15898:6:39",
+ "memberName": "remove",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12707,
+ "src": "15851:53:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"
+ }
+ },
+ "id": 16851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "15851:61:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16852,
+ "nodeType": "ExpressionStatement",
+ "src": "15851:61:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16839,
+ "nodeType": "StructuredDocumentation",
+ "src": "15657:122:39",
+ "text": " @dev Removes a signer from the list of signers\n @param signer The address of the signer to remove"
+ },
+ "functionSelector": "0e316ab7",
+ "id": 16854,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16844,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16843,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "15831:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "15831:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "15831:9:39"
+ }
+ ],
+ "name": "removeSigner",
+ "nameLocation": "15793:12:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16842,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16841,
+ "mutability": "mutable",
+ "name": "signer",
+ "nameLocation": "15814:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16854,
+ "src": "15806:14:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16840,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "15806:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15805:16:39"
+ },
+ "returnParameters": {
+ "id": 16845,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "15841:0:39"
+ },
+ "scope": 17540,
+ "src": "15784:135:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16869,
+ "nodeType": "Block",
+ "src": "16133:86:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16866,
+ "name": "transactor",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16857,
+ "src": "16201:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16862,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "16143:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16863,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16143:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16864,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16181:12:39",
+ "memberName": "_transactors",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16174,
+ "src": "16143:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16865,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16194:6:39",
+ "memberName": "remove",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12707,
+ "src": "16143:57:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"
+ }
+ },
+ "id": 16867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16143:69:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16868,
+ "nodeType": "ExpressionStatement",
+ "src": "16143:69:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16855,
+ "nodeType": "StructuredDocumentation",
+ "src": "15925:138:39",
+ "text": " @dev Removes a transactor from the list of transactors\n @param transactor The address of the transactor to remove"
+ },
+ "functionSelector": "1f0f4f7a",
+ "id": 16870,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16860,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16859,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "16123:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "16123:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "16123:9:39"
+ }
+ ],
+ "name": "removeTransactor",
+ "nameLocation": "16077:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16858,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16857,
+ "mutability": "mutable",
+ "name": "transactor",
+ "nameLocation": "16102:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16870,
+ "src": "16094:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 16856,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "16094:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16093:20:39"
+ },
+ "returnParameters": {
+ "id": 16861,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16133:0:39"
+ },
+ "scope": 17540,
+ "src": "16068:151:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16880,
+ "nodeType": "Block",
+ "src": "16383:76:39",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16876,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "16400:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16877,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16400:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16878,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16438:14:39",
+ "memberName": "_issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16180,
+ "src": "16400:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 16875,
+ "id": 16879,
+ "nodeType": "Return",
+ "src": "16393:59:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16871,
+ "nodeType": "StructuredDocumentation",
+ "src": "16225:93:39",
+ "text": " @notice Retrieves the issuer DID hash.\n @return The issuer DID hash."
+ },
+ "functionSelector": "05417f79",
+ "id": 16881,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getIssuerDIDHash",
+ "nameLocation": "16332:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16872,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16348:2:39"
+ },
+ "returnParameters": {
+ "id": 16875,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16874,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 16881,
+ "src": "16374:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16873,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16374:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16373:9:39"
+ },
+ "scope": 17540,
+ "src": "16323:136:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16895,
+ "nodeType": "Block",
+ "src": "16646:85:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 16893,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16889,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "16656:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16656:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16891,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "16694:14:39",
+ "memberName": "_issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16180,
+ "src": "16656:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 16892,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16884,
+ "src": "16711:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "16656:68:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 16894,
+ "nodeType": "ExpressionStatement",
+ "src": "16656:68:39"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 16882,
+ "nodeType": "StructuredDocumentation",
+ "src": "16465:108:39",
+ "text": " @notice Updates the issuer DID hash.\n @param issuerDidHash The new issuer DID hash."
+ },
+ "functionSelector": "b1af19e7",
+ "id": 16896,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "id": 16887,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 16886,
+ "name": "onlyOwner",
+ "nameLocations": [
+ "16636:9:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 4863,
+ "src": "16636:9:39"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "16636:9:39"
+ }
+ ],
+ "name": "setIssuerDIDHash",
+ "nameLocation": "16587:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16885,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16884,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "16612:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16896,
+ "src": "16604:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16883,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16604:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16603:23:39"
+ },
+ "returnParameters": {
+ "id": 16888,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16646:0:39"
+ },
+ "scope": 17540,
+ "src": "16578:153:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 16914,
+ "nodeType": "Block",
+ "src": "16779:159:39",
+ "statements": [
+ {
+ "condition": {
+ "id": 16906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "16793:74:39",
+ "subExpression": {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16903,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5264,
+ "src": "16854:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 16904,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16854:12:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16899,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "16794:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16794:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16901,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16832:12:39",
+ "memberName": "_transactors",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16174,
+ "src": "16794:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 16902,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "16845:8:39",
+ "memberName": "contains",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12747,
+ "src": "16794:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
+ }
+ },
+ "id": 16905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16794:73:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16913,
+ "nodeType": "IfStatement",
+ "src": "16789:143:39",
+ "trueBody": {
+ "id": 16912,
+ "nodeType": "Block",
+ "src": "16869:63:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16908,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5264,
+ "src": "16908:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 16909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16908:12:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 16907,
+ "name": "InvalidTransactor",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16058,
+ "src": "16890:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 16910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "16890:31:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16911,
+ "nodeType": "RevertStatement",
+ "src": "16883:38:39"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 16915,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_checkTransactor",
+ "nameLocation": "16746:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16897,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16762:2:39"
+ },
+ "returnParameters": {
+ "id": 16898,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16779:0:39"
+ },
+ "scope": 17540,
+ "src": "16737:201:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 16940,
+ "nodeType": "Block",
+ "src": "17188:210:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16927,
+ "name": "credentialCircuitId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16917,
+ "src": "17221:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ {
+ "id": 16928,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16920,
+ "src": "17242:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ ],
+ "id": 16926,
+ "name": "_verifyCredentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17278,
+ "src": "17198:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$returns$__$",
+ "typeString": "function (string memory,struct ICredentialCircuitVerifier.CredentialCircuitProof memory) view"
+ }
+ },
+ "id": 16929,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17198:67:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16930,
+ "nodeType": "ExpressionStatement",
+ "src": "17198:67:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16932,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16923,
+ "src": "17292:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ ],
+ "id": 16931,
+ "name": "_verifySignature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17316,
+ "src": "17275:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$",
+ "typeString": "function (struct PassportCredentialIssuer.PassportSignatureProof memory) view"
+ }
+ },
+ "id": 16933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17275:40:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16934,
+ "nodeType": "ExpressionStatement",
+ "src": "17275:40:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 16936,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16920,
+ "src": "17344:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ {
+ "id": 16937,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16923,
+ "src": "17368:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ ],
+ "id": 16935,
+ "name": "_afterProofsSubmit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17419,
+ "src": "17325:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$",
+ "typeString": "function (struct ICredentialCircuitVerifier.CredentialCircuitProof memory,struct PassportCredentialIssuer.PassportSignatureProof memory)"
+ }
+ },
+ "id": 16938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17325:66:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 16939,
+ "nodeType": "ExpressionStatement",
+ "src": "17325:66:39"
+ }
+ ]
+ },
+ "id": 16941,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_verifyPassportCredential",
+ "nameLocation": "16953:25:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16924,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16917,
+ "mutability": "mutable",
+ "name": "credentialCircuitId",
+ "nameLocation": "17002:19:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16941,
+ "src": "16988:33:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 16916,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "16988:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16920,
+ "mutability": "mutable",
+ "name": "credentialCircuitProof",
+ "nameLocation": "17088:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16941,
+ "src": "17031:79:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ },
+ "typeName": {
+ "id": 16919,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16918,
+ "name": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "nameLocations": [
+ "17031:26:39",
+ "17058:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14684,
+ "src": "17031:49:39"
+ },
+ "referencedDeclaration": 14684,
+ "src": "17031:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16923,
+ "mutability": "mutable",
+ "name": "passportSignatureProof",
+ "nameLocation": "17150:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 16941,
+ "src": "17120:52:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ },
+ "typeName": {
+ "id": 16922,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16921,
+ "name": "PassportSignatureProof",
+ "nameLocations": [
+ "17120:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16128,
+ "src": "17120:22:39"
+ },
+ "referencedDeclaration": 16128,
+ "src": "17120:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16978:200:39"
+ },
+ "returnParameters": {
+ "id": 16925,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "17188:0:39"
+ },
+ "scope": 17540,
+ "src": "16944:454:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17130,
+ "nodeType": "Block",
+ "src": "17728:2002:39",
+ "statements": [
+ {
+ "assignments": [
+ 16964
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 16964,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "17778:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17130,
+ "src": "17738:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 16963,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 16962,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "17738:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "17738:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "17738:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 16967,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 16965,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "17782:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 16966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17782:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "17738:81:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16970,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16968,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16943,
+ "src": "17833:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 16969,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17846:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "17833:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16975,
+ "nodeType": "IfStatement",
+ "src": "17829:54:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16972,
+ "name": "hashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16943,
+ "src": "17873:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16971,
+ "name": "InvalidHashIndex",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16004,
+ "src": "17856:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 16973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17856:27:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16974,
+ "nodeType": "RevertStatement",
+ "src": "17849:34:39"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16976,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16945,
+ "src": "17897:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 16977,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "17910:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "17897:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16983,
+ "nodeType": "IfStatement",
+ "src": "17893:54:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16980,
+ "name": "hashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16945,
+ "src": "17937:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16979,
+ "name": "InvalidHashValue",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16008,
+ "src": "17920:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 16981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "17920:27:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16982,
+ "nodeType": "RevertStatement",
+ "src": "17913:34:39"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16984,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16951,
+ "src": "17962:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 16985,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "17978:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16986,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "17980:13:39",
+ "memberName": "_templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16155,
+ "src": "17978:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "17962:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 16994,
+ "nodeType": "IfStatement",
+ "src": "17958:106:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16989,
+ "name": "templateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16951,
+ "src": "18034:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 16990,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "18048:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 16991,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18050:13:39",
+ "memberName": "_templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16155,
+ "src": "18048:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16988,
+ "name": "InvalidTemplateRoot",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16014,
+ "src": "18014:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 16992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18014:50:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 16993,
+ "nodeType": "RevertStatement",
+ "src": "18007:57:39"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 16997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 16995,
+ "name": "linkIdSignature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16955,
+ "src": "18079:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 16996,
+ "name": "linkIdCredentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16953,
+ "src": "18098:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18079:40:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17003,
+ "nodeType": "IfStatement",
+ "src": "18075:118:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 16999,
+ "name": "linkIdSignature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16955,
+ "src": "18154:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 17000,
+ "name": "linkIdCredentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16953,
+ "src": "18171:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 16998,
+ "name": "InvalidLinkId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16000,
+ "src": "18140:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 17001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18140:53:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17002,
+ "nodeType": "RevertStatement",
+ "src": "18133:60:39"
+ }
+ },
+ {
+ "assignments": [
+ 17005
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17005,
+ "mutability": "mutable",
+ "name": "currentDateWithFullYear",
+ "nameLocation": "18212:23:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17130,
+ "src": "18204:31:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17004,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18204:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17006,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "18204:31:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17009,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17007,
+ "name": "currentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16949,
+ "src": "18289:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 17008,
+ "name": "DATE_20TH_CENTURY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16106,
+ "src": "18303:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18289:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 17023,
+ "nodeType": "Block",
+ "src": "18421:93:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 17021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 17017,
+ "name": "currentDateWithFullYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17005,
+ "src": "18455:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17018,
+ "name": "currentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16949,
+ "src": "18481:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3230303030303030",
+ "id": 17019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18495:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20000000_by_1",
+ "typeString": "int_const 20000000"
+ },
+ "value": "20000000"
+ },
+ "src": "18481:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18455:48:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17022,
+ "nodeType": "ExpressionStatement",
+ "src": "18455:48:39"
+ }
+ ]
+ },
+ "id": 17024,
+ "nodeType": "IfStatement",
+ "src": "18285:229:39",
+ "trueBody": {
+ "id": 17016,
+ "nodeType": "Block",
+ "src": "18322:93:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 17014,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 17010,
+ "name": "currentDateWithFullYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17005,
+ "src": "18356:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17013,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17011,
+ "name": "currentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16949,
+ "src": "18382:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3139303030303030",
+ "id": 17012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18396:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19000000_by_1",
+ "typeString": "int_const 19000000"
+ },
+ "value": "19000000"
+ },
+ "src": "18382:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18356:48:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17015,
+ "nodeType": "ExpressionStatement",
+ "src": "18356:48:39"
+ }
+ ]
+ }
+ },
+ {
+ "id": 17097,
+ "nodeType": "Block",
+ "src": "18643:765:39",
+ "statements": [
+ {
+ "assignments": [
+ 17026,
+ 17028,
+ 17030
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17026,
+ "mutability": "mutable",
+ "name": "year",
+ "nameLocation": "18666:4:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "18658:12:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17025,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18658:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17028,
+ "mutability": "mutable",
+ "name": "month",
+ "nameLocation": "18680:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "18672:13:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17027,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18672:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17030,
+ "mutability": "mutable",
+ "name": "day",
+ "nameLocation": "18695:3:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "18687:11:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17029,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18687:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17039,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17037,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 17033,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "18744:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 17034,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18750:9:39",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "18744:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "expression": {
+ "id": 17035,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "18762:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17036,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18764:15:39",
+ "memberName": "_expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16153,
+ "src": "18762:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18744:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 17031,
+ "name": "DateTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14469,
+ "src": "18702:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DateTime_$14469_$",
+ "typeString": "type(library DateTime)"
+ }
+ },
+ "id": 17032,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "18711:15:39",
+ "memberName": "timestampToDate",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 13347,
+ "src": "18702:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 17038,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18702:91:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "18657:136:39"
+ },
+ {
+ "assignments": [
+ 17041
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17041,
+ "mutability": "mutable",
+ "name": "minimumExpectedCurrentDate",
+ "nameLocation": "18815:26:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "18807:34:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17040,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18807:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17051,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17042,
+ "name": "year",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17026,
+ "src": "18844:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3130303030",
+ "id": 17043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18851:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ },
+ "value": "10000"
+ },
+ "src": "18844:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17047,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17045,
+ "name": "month",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17028,
+ "src": "18859:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "313030",
+ "id": 17046,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "18867:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "src": "18859:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18844:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 17049,
+ "name": "day",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17030,
+ "src": "18873:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18844:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "18807:69:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17052,
+ "name": "minimumExpectedCurrentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17041,
+ "src": "18894:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 17053,
+ "name": "currentDateWithFullYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17005,
+ "src": "18923:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "18894:52:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17060,
+ "nodeType": "IfStatement",
+ "src": "18890:129:39",
+ "trueBody": {
+ "id": 17059,
+ "nodeType": "Block",
+ "src": "18948:71:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17056,
+ "name": "currentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16949,
+ "src": "18992:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17055,
+ "name": "CurrentDateExpired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16026,
+ "src": "18973:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 17057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "18973:31:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17058,
+ "nodeType": "RevertStatement",
+ "src": "18966:38:39"
+ }
+ ]
+ }
+ },
+ {
+ "assignments": [
+ 17062,
+ 17064,
+ 17066
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17062,
+ "mutability": "mutable",
+ "name": "futureYear",
+ "nameLocation": "19041:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "19033:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17061,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19033:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17064,
+ "mutability": "mutable",
+ "name": "futureMonth",
+ "nameLocation": "19061:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "19053:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17063,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19053:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17066,
+ "mutability": "mutable",
+ "name": "futureDay",
+ "nameLocation": "19082:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "19074:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17065,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19074:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17075,
+ "initialValue": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 17069,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "19137:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 17070,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19143:9:39",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "19137:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "expression": {
+ "id": 17071,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "19155:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17072,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19157:14:39",
+ "memberName": "_maxFutureTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16157,
+ "src": "19155:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19137:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 17067,
+ "name": "DateTime",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14469,
+ "src": "19095:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DateTime_$14469_$",
+ "typeString": "type(library DateTime)"
+ }
+ },
+ "id": 17068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19104:15:39",
+ "memberName": "timestampToDate",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 13347,
+ "src": "19095:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
+ }
+ },
+ "id": 17074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19095:90:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19032:153:39"
+ },
+ {
+ "assignments": [
+ 17077
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17077,
+ "mutability": "mutable",
+ "name": "futureDate",
+ "nameLocation": "19207:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17097,
+ "src": "19199:18:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17076,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19199:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17087,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17080,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17078,
+ "name": "futureYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17062,
+ "src": "19220:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3130303030",
+ "id": 17079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19233:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ },
+ "value": "10000"
+ },
+ "src": "19220:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17081,
+ "name": "futureMonth",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17064,
+ "src": "19241:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "313030",
+ "id": 17082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "19255:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "src": "19241:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19220:38:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 17085,
+ "name": "futureDay",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17066,
+ "src": "19261:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19220:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "19199:71:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17088,
+ "name": "currentDateWithFullYear",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17005,
+ "src": "19288:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 17089,
+ "name": "futureDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17077,
+ "src": "19314:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19288:36:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17096,
+ "nodeType": "IfStatement",
+ "src": "19284:114:39",
+ "trueBody": {
+ "id": 17095,
+ "nodeType": "Block",
+ "src": "19326:72:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17092,
+ "name": "currentDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16949,
+ "src": "19371:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17091,
+ "name": "CurrentDateInFuture",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16030,
+ "src": "19351:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 17093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19351:32:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17094,
+ "nodeType": "RevertStatement",
+ "src": "19344:39:39"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17098,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16947,
+ "src": "19422:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "expression": {
+ "id": 17099,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "19437:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17100,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19439:15:39",
+ "memberName": "_expirationTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16153,
+ "src": "19437:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19422:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 17102,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "19457:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 17103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19463:9:39",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "19457:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19422:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17109,
+ "nodeType": "IfStatement",
+ "src": "19418:108:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17106,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16947,
+ "src": "19513:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17105,
+ "name": "IssuanceDateExpired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16018,
+ "src": "19493:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 17107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19493:33:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17108,
+ "nodeType": "RevertStatement",
+ "src": "19486:40:39"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17116,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17110,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16947,
+ "src": "19540:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 17111,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -4,
+ "src": "19555:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 17112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19561:9:39",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "19555:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "expression": {
+ "id": 17113,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "19573:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17114,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19575:14:39",
+ "memberName": "_maxFutureTime",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16157,
+ "src": "19573:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19555:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19540:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17121,
+ "nodeType": "IfStatement",
+ "src": "19536:108:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17118,
+ "name": "issuanceDate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16947,
+ "src": "19631:12:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17117,
+ "name": "IssuanceDateInFuture",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16022,
+ "src": "19610:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256) pure returns (error)"
+ }
+ },
+ "id": 17119,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19610:34:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17120,
+ "nodeType": "RevertStatement",
+ "src": "19603:41:39"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 17122,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16964,
+ "src": "19659:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17123,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19661:14:39",
+ "memberName": "_issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16180,
+ "src": "19659:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "id": 17124,
+ "name": "issuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16959,
+ "src": "19679:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "19659:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17129,
+ "nodeType": "IfStatement",
+ "src": "19655:68:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17126,
+ "name": "InvalidIssuerDidHash",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16070,
+ "src": "19701:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 17127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19701:22:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17128,
+ "nodeType": "RevertStatement",
+ "src": "19694:29:39"
+ }
+ }
+ ]
+ },
+ "id": 17131,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_validatePublicInputs",
+ "nameLocation": "17413:21:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 16960,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16943,
+ "mutability": "mutable",
+ "name": "hashIndex",
+ "nameLocation": "17452:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17444:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16942,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17444:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16945,
+ "mutability": "mutable",
+ "name": "hashValue",
+ "nameLocation": "17479:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17471:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16944,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17471:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16947,
+ "mutability": "mutable",
+ "name": "issuanceDate",
+ "nameLocation": "17506:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17498:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16946,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17498:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16949,
+ "mutability": "mutable",
+ "name": "currentDate",
+ "nameLocation": "17536:11:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17528:19:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16948,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17528:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16951,
+ "mutability": "mutable",
+ "name": "templateRoot",
+ "nameLocation": "17565:12:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17557:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16950,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17557:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16953,
+ "mutability": "mutable",
+ "name": "linkIdCredentialProof",
+ "nameLocation": "17595:21:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17587:29:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16952,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17587:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16955,
+ "mutability": "mutable",
+ "name": "linkIdSignature",
+ "nameLocation": "17634:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17626:23:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16954,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17626:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16957,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "17667:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17659:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16956,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17659:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 16959,
+ "mutability": "mutable",
+ "name": "issuerDidHash",
+ "nameLocation": "17694:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17131,
+ "src": "17686:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 16958,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17686:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17434:279:39"
+ },
+ "returnParameters": {
+ "id": 16961,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "17728:0:39"
+ },
+ "scope": 17540,
+ "src": "17404:2326:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17152,
+ "nodeType": "Block",
+ "src": "19797:131:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 17142,
+ "name": "hi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17133,
+ "src": "19855:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 17143,
+ "name": "hv",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17135,
+ "src": "19859:2:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17138,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "19807:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 17139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19807:25:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 17140,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19833:8:39",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "19807:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 17141,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19842:12:39",
+ "memberName": "addClaimHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1590,
+ "src": "19807:47:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256)"
+ }
+ },
+ "id": 17144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19807:55:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17145,
+ "nodeType": "ExpressionStatement",
+ "src": "19807:55:39"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17146,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "19872:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 17147,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19872:25:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 17148,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19898:8:39",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "19872:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 17149,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "19907:12:39",
+ "memberName": "transitState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1778,
+ "src": "19872:47:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer)"
+ }
+ },
+ "id": 17150,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19872:49:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17151,
+ "nodeType": "ExpressionStatement",
+ "src": "19872:49:39"
+ }
+ ]
+ },
+ "id": 17153,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addHashAndTransit",
+ "nameLocation": "19745:18:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17136,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17133,
+ "mutability": "mutable",
+ "name": "hi",
+ "nameLocation": "19772:2:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17153,
+ "src": "19764:10:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19764:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17135,
+ "mutability": "mutable",
+ "name": "hv",
+ "nameLocation": "19784:2:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17153,
+ "src": "19776:10:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17134,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19776:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19763:24:39"
+ },
+ "returnParameters": {
+ "id": 17137,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19797:0:39"
+ },
+ "scope": 17540,
+ "src": "19736:192:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17171,
+ "nodeType": "Block",
+ "src": "19989:129:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 17162,
+ "name": "nonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17155,
+ "src": "20046:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17158,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "19999:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 17159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19999:25:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 17160,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20025:8:39",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "19999:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 17161,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20034:11:39",
+ "memberName": "revokeClaim",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1614,
+ "src": "19999:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64)"
+ }
+ },
+ "id": 17163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "19999:53:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17164,
+ "nodeType": "ExpressionStatement",
+ "src": "19999:53:39"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17165,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "20062:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 17166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20062:25:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 17167,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20088:8:39",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "20062:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 17168,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20097:12:39",
+ "memberName": "transitState",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1778,
+ "src": "20062:47:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer)"
+ }
+ },
+ "id": 17169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20062:49:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17170,
+ "nodeType": "ExpressionStatement",
+ "src": "20062:49:39"
+ }
+ ]
+ },
+ "id": 17172,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_revokeClaimAndTransit",
+ "nameLocation": "19943:22:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17156,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17155,
+ "mutability": "mutable",
+ "name": "nonce",
+ "nameLocation": "19973:5:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17172,
+ "src": "19966:12:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 17154,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "19966:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19965:14:39"
+ },
+ "returnParameters": {
+ "id": 17157,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19989:0:39"
+ },
+ "scope": 17540,
+ "src": "19934:184:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17225,
+ "nodeType": "Block",
+ "src": "20199:504:39",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 17181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17179,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17176,
+ "src": "20213:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 17180,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20232:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "20213:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17186,
+ "nodeType": "IfStatement",
+ "src": "20209:72:39",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17183,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17176,
+ "src": "20265:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 17182,
+ "name": "InvalidRevocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16074,
+ "src": "20242:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint64_$returns$_t_error_$",
+ "typeString": "function (uint64) pure returns (error)"
+ }
+ },
+ "id": 17184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20242:39:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17185,
+ "nodeType": "RevertStatement",
+ "src": "20235:46:39"
+ }
+ },
+ {
+ "assignments": [
+ 17189
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17189,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "20331:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17225,
+ "src": "20291:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 17188,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17187,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "20291:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "20291:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "20291:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17192,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17190,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "20335:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 17191,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20335:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20291:81:39"
+ },
+ {
+ "assignments": [
+ 17194
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17194,
+ "mutability": "mutable",
+ "name": "existingNonce",
+ "nameLocation": "20389:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17225,
+ "src": "20382:20:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 17193,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "20382:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17199,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 17195,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17189,
+ "src": "20405:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17196,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20407:28:39",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16178,
+ "src": "20405:30:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 17198,
+ "indexExpression": {
+ "id": 17197,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17174,
+ "src": "20436:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "20405:41:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20382:64:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "id": 17202,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17200,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17194,
+ "src": "20460:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 17201,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "20477:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "20460:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17216,
+ "nodeType": "IfStatement",
+ "src": "20456:172:39",
+ "trueBody": {
+ "id": 17215,
+ "nodeType": "Block",
+ "src": "20480:148:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 17207,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17194,
+ "src": "20541:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17203,
+ "name": "_getIdentityBaseStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 855,
+ "src": "20494:23:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$",
+ "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)"
+ }
+ },
+ "id": 17204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20494:25:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr",
+ "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer"
+ }
+ },
+ "id": 17205,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20520:8:39",
+ "memberName": "identity",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 842,
+ "src": "20494:34:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Data_$1371_storage",
+ "typeString": "struct IdentityLib.Data storage ref"
+ }
+ },
+ "id": 17206,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20529:11:39",
+ "memberName": "revokeClaim",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1614,
+ "src": "20494:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$",
+ "typeString": "function (struct IdentityLib.Data storage pointer,uint64)"
+ }
+ },
+ "id": 17208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20494:61:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17209,
+ "nodeType": "ExpressionStatement",
+ "src": "20494:61:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 17211,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17174,
+ "src": "20592:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 17212,
+ "name": "existingNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17194,
+ "src": "20603:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 17210,
+ "name": "CredentialRevoked",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16226,
+ "src": "20574:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 17213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20574:43:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17214,
+ "nodeType": "EmitStatement",
+ "src": "20569:48:39"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 17223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 17217,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17189,
+ "src": "20637:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17220,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "20639:28:39",
+ "memberName": "_nullifiersToRevocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16178,
+ "src": "20637:30:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$",
+ "typeString": "mapping(uint256 => uint64)"
+ }
+ },
+ "id": 17221,
+ "indexExpression": {
+ "id": 17219,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17174,
+ "src": "20668:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "20637:41:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 17222,
+ "name": "revocationNonce",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17176,
+ "src": "20681:15:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "src": "20637:59:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "id": 17224,
+ "nodeType": "ExpressionStatement",
+ "src": "20637:59:39"
+ }
+ ]
+ },
+ "id": 17226,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_setNullifier",
+ "nameLocation": "20133:13:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17177,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17174,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "20155:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17226,
+ "src": "20147:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17173,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20147:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17176,
+ "mutability": "mutable",
+ "name": "revocationNonce",
+ "nameLocation": "20173:15:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17226,
+ "src": "20166:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 17175,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "20166:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20146:43:39"
+ },
+ "returnParameters": {
+ "id": 17178,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "20199:0:39"
+ },
+ "scope": 17540,
+ "src": "20124:579:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17277,
+ "nodeType": "Block",
+ "src": "20893:587:39",
+ "statements": [
+ {
+ "assignments": [
+ 17236
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17236,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "20943:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17277,
+ "src": "20903:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 17235,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17234,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "20903:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "20903:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "20903:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17239,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17237,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "20947:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 17238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "20947:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20903:81:39"
+ },
+ {
+ "assignments": [
+ 17241
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17241,
+ "mutability": "mutable",
+ "name": "verifier",
+ "nameLocation": "21002:8:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17277,
+ "src": "20994:16:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 17240,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "20994:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17246,
+ "initialValue": {
+ "baseExpression": {
+ "expression": {
+ "id": 17242,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17236,
+ "src": "21013:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17243,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21015:20:39",
+ "memberName": "_credentialVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16161,
+ "src": "21013:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 17245,
+ "indexExpression": {
+ "id": 17244,
+ "name": "credentialCircuitId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17228,
+ "src": "21036:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "21013:43:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "20994:62:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 17252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17247,
+ "name": "verifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17241,
+ "src": "21070:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 17250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "21090: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": 17249,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "21082:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 17248,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "21082:7:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 17251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21082:10:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "21070:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17257,
+ "nodeType": "IfStatement",
+ "src": "21066:75:39",
+ "trueBody": {
+ "id": 17256,
+ "nodeType": "Block",
+ "src": "21094:47:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17253,
+ "name": "NoVerifierSet",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16042,
+ "src": "21115:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 17254,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21115:15:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17255,
+ "nodeType": "RevertStatement",
+ "src": "21108:22:39"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "id": 17271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "21167:240:39",
+ "subExpression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 17262,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17231,
+ "src": "21234:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17263,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21257:1:39",
+ "memberName": "a",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14669,
+ "src": "21234:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 17264,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17231,
+ "src": "21276:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17265,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21299:1:39",
+ "memberName": "b",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14675,
+ "src": "21276:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 17266,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17231,
+ "src": "21318:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17267,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21341:1:39",
+ "memberName": "c",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14679,
+ "src": "21318:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 17268,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17231,
+ "src": "21360:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17269,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21383:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "21360:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr",
+ "typeString": "uint256[2] memory[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
+ "typeString": "uint256[2] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 17259,
+ "name": "verifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17241,
+ "src": "21195:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 17258,
+ "name": "ICredentialCircuitVerifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14709,
+ "src": "21168:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_ICredentialCircuitVerifier_$14709_$",
+ "typeString": "type(contract ICredentialCircuitVerifier)"
+ }
+ },
+ "id": 17260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21168:36:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_ICredentialCircuitVerifier_$14709",
+ "typeString": "contract ICredentialCircuitVerifier"
+ }
+ },
+ "id": 17261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21205:11:39",
+ "memberName": "verifyProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14708,
+ "src": "21168:48:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$returns$_t_bool_$",
+ "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[8] memory) view external returns (bool)"
+ }
+ },
+ "id": 17270,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21168:239:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17276,
+ "nodeType": "IfStatement",
+ "src": "21150:324:39",
+ "trueBody": {
+ "id": 17275,
+ "nodeType": "Block",
+ "src": "21418:56:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17272,
+ "name": "InvalidCredentialProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16044,
+ "src": "21439:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 17273,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21439:24:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17274,
+ "nodeType": "RevertStatement",
+ "src": "21432:31:39"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 17278,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_verifyCredentialProof",
+ "nameLocation": "20718:22:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17232,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17228,
+ "mutability": "mutable",
+ "name": "credentialCircuitId",
+ "nameLocation": "20764:19:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17278,
+ "src": "20750:33:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 17227,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "20750:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17231,
+ "mutability": "mutable",
+ "name": "credentialCircuitProof",
+ "nameLocation": "20850:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17278,
+ "src": "20793:79:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ },
+ "typeName": {
+ "id": 17230,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17229,
+ "name": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "nameLocations": [
+ "20793:26:39",
+ "20820:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14684,
+ "src": "20793:49:39"
+ },
+ "referencedDeclaration": 14684,
+ "src": "20793:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20740:138:39"
+ },
+ "returnParameters": {
+ "id": 17233,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "20893:0:39"
+ },
+ "scope": 17540,
+ "src": "20709:771:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17315,
+ "nodeType": "Block",
+ "src": "21580:449:39",
+ "statements": [
+ {
+ "assignments": [
+ 17285,
+ 17287
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17285,
+ "mutability": "mutable",
+ "name": "isValid",
+ "nameLocation": "21596:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17315,
+ "src": "21591:12:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 17284,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "21591:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17287,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "21613:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17315,
+ "src": "21605:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 17286,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "21605:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17294,
+ "initialValue": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 17289,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17281,
+ "src": "21676:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ },
+ "id": 17290,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21699:21:39",
+ "memberName": "passportCredentialMsg",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16125,
+ "src": "21676:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ }
+ },
+ {
+ "expression": {
+ "id": 17291,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17281,
+ "src": "21734:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ },
+ "id": 17292,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21757:9:39",
+ "memberName": "signature",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16127,
+ "src": "21734:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ },
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 17288,
+ "name": "_recoverPassportSignatureProofSigner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17362,
+ "src": "21626:36:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_PassportCredentialMessage_$16122_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$",
+ "typeString": "function (struct PassportCredentialIssuer.PassportCredentialMessage memory,bytes memory) view returns (bool,address)"
+ }
+ },
+ "id": 17293,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21626:150:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "21590:186:39"
+ },
+ {
+ "condition": {
+ "id": 17296,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "21790:8:39",
+ "subExpression": {
+ "id": 17295,
+ "name": "isValid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17285,
+ "src": "21791:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17301,
+ "nodeType": "IfStatement",
+ "src": "21786:77:39",
+ "trueBody": {
+ "id": 17300,
+ "nodeType": "Block",
+ "src": "21800:63:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17297,
+ "name": "InvalidPassportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16046,
+ "src": "21821:29:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
+ "typeString": "function () pure returns (error)"
+ }
+ },
+ "id": 17298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21821:31:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17299,
+ "nodeType": "RevertStatement",
+ "src": "21814:38:39"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "id": 17308,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "21876:67:39",
+ "subExpression": {
+ "arguments": [
+ {
+ "id": 17306,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17287,
+ "src": "21933:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17302,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "21877:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 17303,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21877:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17304,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21915:8:39",
+ "memberName": "_signers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16164,
+ "src": "21877:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_AddressSet_$12653_storage",
+ "typeString": "struct EnumerableSet.AddressSet storage ref"
+ }
+ },
+ "id": 17305,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "21924:8:39",
+ "memberName": "contains",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 12747,
+ "src": "21877:55:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$",
+ "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
+ }
+ },
+ "id": 17307,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21877:66:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17314,
+ "nodeType": "IfStatement",
+ "src": "21872:151:39",
+ "trueBody": {
+ "id": 17313,
+ "nodeType": "Block",
+ "src": "21945:78:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 17310,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17287,
+ "src": "22002:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 17309,
+ "name": "InvalidSignerPassportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16050,
+ "src": "21966:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$",
+ "typeString": "function (address) pure returns (error)"
+ }
+ },
+ "id": 17311,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "21966:46:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17312,
+ "nodeType": "RevertStatement",
+ "src": "21959:53:39"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 17316,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_verifySignature",
+ "nameLocation": "21495:16:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17282,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17281,
+ "mutability": "mutable",
+ "name": "passportSignatureProof",
+ "nameLocation": "21542:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17316,
+ "src": "21512:52:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ },
+ "typeName": {
+ "id": 17280,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17279,
+ "name": "PassportSignatureProof",
+ "nameLocations": [
+ "21512:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16128,
+ "src": "21512:22:39"
+ },
+ "referencedDeclaration": 16128,
+ "src": "21512:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21511:54:39"
+ },
+ "returnParameters": {
+ "id": 17283,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21580:0:39"
+ },
+ "scope": 17540,
+ "src": "21486:543:39",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17361,
+ "nodeType": "Block",
+ "src": "22215:363:39",
+ "statements": [
+ {
+ "assignments": [
+ 17329
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17329,
+ "mutability": "mutable",
+ "name": "hashTypedData",
+ "nameLocation": "22233:13:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17361,
+ "src": "22225:21:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 17328,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "22225:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17342,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 17334,
+ "name": "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16112,
+ "src": "22317:36:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ {
+ "expression": {
+ "id": 17335,
+ "name": "message",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17319,
+ "src": "22355:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ }
+ },
+ "id": 17336,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22363:6:39",
+ "memberName": "linkId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16119,
+ "src": "22355:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17337,
+ "name": "message",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17319,
+ "src": "22371:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ }
+ },
+ "id": 17338,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22379:9:39",
+ "memberName": "nullifier",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16121,
+ "src": "22371:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 17332,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "22306:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 17333,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "22310:6:39",
+ "memberName": "encode",
+ "nodeType": "MemberAccess",
+ "src": "22306:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 17339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22306:83:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 17331,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "22279:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 17340,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22279:124:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ ],
+ "id": 17330,
+ "name": "_hashTypedDataV4",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 5428,
+ "src": "22249:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
+ "typeString": "function (bytes32) view returns (bytes32)"
+ }
+ },
+ "id": 17341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22249:164:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22225:188:39"
+ },
+ {
+ "assignments": [
+ 17344,
+ 17347,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17344,
+ "mutability": "mutable",
+ "name": "recovered",
+ "nameLocation": "22433:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17361,
+ "src": "22425:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 17343,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "22425:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17347,
+ "mutability": "mutable",
+ "name": "err",
+ "nameLocation": "22463:3:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17361,
+ "src": "22444:22:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "typeName": {
+ "id": 17346,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17345,
+ "name": "ECDSA.RecoverError",
+ "nameLocations": [
+ "22444:5:39",
+ "22450:12:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 8277,
+ "src": "22444:18:39"
+ },
+ "referencedDeclaration": 8277,
+ "src": "22444:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 17352,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 17350,
+ "name": "signature",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17321,
+ "src": "22497:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "expression": {
+ "id": 17348,
+ "name": "hashTypedData",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17329,
+ "src": "22472:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "id": 17349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22486:10:39",
+ "memberName": "tryRecover",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8343,
+ "src": "22472:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$attached_to$_t_bytes32_$",
+ "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "id": 17351,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22472:35:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$",
+ "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22424:83:39"
+ },
+ {
+ "expression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ },
+ "id": 17357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17353,
+ "name": "err",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17347,
+ "src": "22526:3:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "expression": {
+ "id": 17354,
+ "name": "ECDSA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 8617,
+ "src": "22533:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_ECDSA_$8617_$",
+ "typeString": "type(library ECDSA)"
+ }
+ },
+ "id": 17355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22539:12:39",
+ "memberName": "RecoverError",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8277,
+ "src": "22533:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$",
+ "typeString": "type(enum ECDSA.RecoverError)"
+ }
+ },
+ "id": 17356,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "22552:7:39",
+ "memberName": "NoError",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 8273,
+ "src": "22533:26:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_RecoverError_$8277",
+ "typeString": "enum ECDSA.RecoverError"
+ }
+ },
+ "src": "22526:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "id": 17358,
+ "name": "recovered",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17344,
+ "src": "22561:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 17359,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "22525:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_bool_$_t_address_$",
+ "typeString": "tuple(bool,address)"
+ }
+ },
+ "functionReturnParameters": 17327,
+ "id": 17360,
+ "nodeType": "Return",
+ "src": "22518:53:39"
+ }
+ ]
+ },
+ "id": 17362,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_recoverPassportSignatureProofSigner",
+ "nameLocation": "22044:36:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17322,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17319,
+ "mutability": "mutable",
+ "name": "message",
+ "nameLocation": "22123:7:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17362,
+ "src": "22090:40:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage"
+ },
+ "typeName": {
+ "id": 17318,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17317,
+ "name": "PassportCredentialMessage",
+ "nameLocations": [
+ "22090:25:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16122,
+ "src": "22090:25:39"
+ },
+ "referencedDeclaration": 16122,
+ "src": "22090:25:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17321,
+ "mutability": "mutable",
+ "name": "signature",
+ "nameLocation": "22153:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17362,
+ "src": "22140:22:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 17320,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "22140:5:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22080:88:39"
+ },
+ "returnParameters": {
+ "id": 17327,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17324,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17362,
+ "src": "22200:4:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 17323,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "22200:4:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17326,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17362,
+ "src": "22206:7:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 17325,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "22206:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22199:15:39"
+ },
+ "scope": 17540,
+ "src": "22035:543:39",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17418,
+ "nodeType": "Block",
+ "src": "22778:658:39",
+ "statements": [
+ {
+ "assignments": [
+ 17373
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17373,
+ "mutability": "mutable",
+ "name": "inputs",
+ "nameLocation": "22807:6:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17418,
+ "src": "22788:25:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs"
+ },
+ "typeName": {
+ "id": 17372,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17371,
+ "name": "ProofInputs",
+ "nameLocations": [
+ "22788:11:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16150,
+ "src": "22788:11:39"
+ },
+ "referencedDeclaration": 16150,
+ "src": "22788:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17377,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 17375,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17365,
+ "src": "22836:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ ],
+ "id": 17374,
+ "name": "_extractProofInputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17539,
+ "src": "22816:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$returns$_t_struct$_ProofInputs_$16150_memory_ptr_$",
+ "typeString": "function (struct ICredentialCircuitVerifier.CredentialCircuitProof memory) pure returns (struct PassportCredentialIssuer.ProofInputs memory)"
+ }
+ },
+ "id": 17376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22816:43:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22788:71:39"
+ },
+ {
+ "assignments": [
+ 17379
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17379,
+ "mutability": "mutable",
+ "name": "nullifier",
+ "nameLocation": "22878:9:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17418,
+ "src": "22870:17:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17378,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22870:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17383,
+ "initialValue": {
+ "expression": {
+ "expression": {
+ "id": 17380,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17368,
+ "src": "22890:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ },
+ "id": 17381,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22913:21:39",
+ "memberName": "passportCredentialMsg",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16125,
+ "src": "22890:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ }
+ },
+ "id": 17382,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22935:9:39",
+ "memberName": "nullifier",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16121,
+ "src": "22890:54:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "22870:74:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 17385,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "22989:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17386,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "22996:9:39",
+ "memberName": "hashIndex",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16135,
+ "src": "22989:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17387,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23019:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17388,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23026:9:39",
+ "memberName": "hashValue",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16137,
+ "src": "23019:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17389,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23049:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17390,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23056:12:39",
+ "memberName": "issuanceDate",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16139,
+ "src": "23049:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17391,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23082:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17392,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23089:11:39",
+ "memberName": "currentDate",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16141,
+ "src": "23082:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17393,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23114:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17394,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23121:12:39",
+ "memberName": "templateRoot",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16143,
+ "src": "23114:19:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17395,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23147:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17396,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23154:21:39",
+ "memberName": "linkIdCredentialProof",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16145,
+ "src": "23147:28:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "expression": {
+ "id": 17397,
+ "name": "passportSignatureProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17368,
+ "src": "23189:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory"
+ }
+ },
+ "id": 17398,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23212:21:39",
+ "memberName": "passportCredentialMsg",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16125,
+ "src": "23189:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory"
+ }
+ },
+ "id": 17399,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23234:6:39",
+ "memberName": "linkId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16119,
+ "src": "23189:51:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 17400,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17379,
+ "src": "23254:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17401,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23277:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17402,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23284:13:39",
+ "memberName": "issuerDidHash",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16149,
+ "src": "23277:20:39",
+ "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"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17384,
+ "name": "_validatePublicInputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17131,
+ "src": "22954:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) view"
+ }
+ },
+ "id": 17403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "22954:353:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17404,
+ "nodeType": "ExpressionStatement",
+ "src": "22954:353:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 17406,
+ "name": "nullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17379,
+ "src": "23331:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17407,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23342:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17408,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23349:15:39",
+ "memberName": "revocationNonce",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16147,
+ "src": "23342:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ ],
+ "id": 17405,
+ "name": "_setNullifier",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17226,
+ "src": "23317:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint64_$returns$__$",
+ "typeString": "function (uint256,uint64)"
+ }
+ },
+ "id": 17409,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23317:48:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17410,
+ "nodeType": "ExpressionStatement",
+ "src": "23317:48:39"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 17412,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23394:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17413,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23401:9:39",
+ "memberName": "hashIndex",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16135,
+ "src": "23394:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17414,
+ "name": "inputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17373,
+ "src": "23412:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "id": 17415,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23419:9:39",
+ "memberName": "hashValue",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16137,
+ "src": "23412:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17411,
+ "name": "_addHashAndTransit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17153,
+ "src": "23375:18:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 17416,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23375:54:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17417,
+ "nodeType": "ExpressionStatement",
+ "src": "23375:54:39"
+ }
+ ]
+ },
+ "id": 17419,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_afterProofsSubmit",
+ "nameLocation": "22593:18:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17369,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17365,
+ "mutability": "mutable",
+ "name": "credentialCircuitProof",
+ "nameLocation": "22678:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17419,
+ "src": "22621:79:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ },
+ "typeName": {
+ "id": 17364,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17363,
+ "name": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "nameLocations": [
+ "22621:26:39",
+ "22648:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14684,
+ "src": "22621:49:39"
+ },
+ "referencedDeclaration": 14684,
+ "src": "22621:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17368,
+ "mutability": "mutable",
+ "name": "passportSignatureProof",
+ "nameLocation": "22740:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17419,
+ "src": "22710:52:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ },
+ "typeName": {
+ "id": 17367,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17366,
+ "name": "PassportSignatureProof",
+ "nameLocations": [
+ "22710:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16128,
+ "src": "22710:22:39"
+ },
+ "referencedDeclaration": 16128,
+ "src": "22710:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportSignatureProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22611:157:39"
+ },
+ "returnParameters": {
+ "id": 17370,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "22778:0:39"
+ },
+ "scope": 17540,
+ "src": "22584:852:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17482,
+ "nodeType": "Block",
+ "src": "23577:480:39",
+ "statements": [
+ {
+ "assignments": [
+ 17430
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17430,
+ "mutability": "mutable",
+ "name": "$",
+ "nameLocation": "23627:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17482,
+ "src": "23587:41:39",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ },
+ "typeName": {
+ "id": 17429,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17428,
+ "name": "PassportCredentialIssuerStorage",
+ "nameLocations": [
+ "23587:31:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16181,
+ "src": "23587:31:39"
+ },
+ "referencedDeclaration": 16181,
+ "src": "23587:31:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17433,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 17431,
+ "name": "_getPassportCredentialIssuerStorage",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16192,
+ "src": "23631:35:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$",
+ "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)"
+ }
+ },
+ "id": 17432,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23631:37:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "23587:81:39"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 17434,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17422,
+ "src": "23682:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 17435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23693:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "23682:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 17436,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17425,
+ "src": "23703:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 17437,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23721:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "23703:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "23682:45:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17447,
+ "nodeType": "IfStatement",
+ "src": "23678:142:39",
+ "trueBody": {
+ "id": 17446,
+ "nodeType": "Block",
+ "src": "23729:91:39",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 17440,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17422,
+ "src": "23765:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 17441,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23776:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "23765:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "id": 17442,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17425,
+ "src": "23784:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 17443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23802:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "23784:24:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17439,
+ "name": "LengthMismatch",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16040,
+ "src": "23750:14:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
+ "typeString": "function (uint256,uint256) pure returns (error)"
+ }
+ },
+ "id": 17444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23750:59:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_error",
+ "typeString": "error"
+ }
+ },
+ "id": 17445,
+ "nodeType": "RevertStatement",
+ "src": "23743:66:39"
+ }
+ ]
+ }
+ },
+ {
+ "body": {
+ "id": 17480,
+ "nodeType": "Block",
+ "src": "23877:174:39",
+ "statements": [
+ {
+ "expression": {
+ "id": 17469,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "id": 17459,
+ "name": "$",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17430,
+ "src": "23891:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer"
+ }
+ },
+ "id": 17464,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23893:20:39",
+ "memberName": "_credentialVerifiers",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 16161,
+ "src": "23891:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
+ "typeString": "mapping(string memory => address)"
+ }
+ },
+ "id": 17465,
+ "indexExpression": {
+ "baseExpression": {
+ "id": 17461,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17422,
+ "src": "23914:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 17463,
+ "indexExpression": {
+ "id": 17462,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "23925:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "23914:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "23891:37:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 17466,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17425,
+ "src": "23931:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 17468,
+ "indexExpression": {
+ "id": 17467,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "23949:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "23931:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "23891:60:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 17470,
+ "nodeType": "ExpressionStatement",
+ "src": "23891:60:39"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 17472,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17422,
+ "src": "24004:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 17474,
+ "indexExpression": {
+ "id": 17473,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "24015:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24004:13:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 17475,
+ "name": "verifierAddresses",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17425,
+ "src": "24019:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 17477,
+ "indexExpression": {
+ "id": 17476,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "24037:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24019:20:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 17471,
+ "name": "CredentialCircuitVerifierUpdated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16199,
+ "src": "23971:32:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
+ "typeString": "function (string memory,address)"
+ }
+ },
+ "id": 17478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "23971:69:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 17479,
+ "nodeType": "EmitStatement",
+ "src": "23966:74:39"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 17455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 17452,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "23849:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 17453,
+ "name": "circuitIds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17422,
+ "src": "23853:10:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string calldata[] calldata"
+ }
+ },
+ "id": 17454,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "23864:6:39",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "23853:17:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "23849:21:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 17481,
+ "initializationExpression": {
+ "assignments": [
+ 17449
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 17449,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "23842:1:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17481,
+ "src": "23834:9:39",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17448,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23834:7:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 17451,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 17450,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "23846:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "23834:13:39"
+ },
+ "isSimpleCounterLoop": true,
+ "loopExpression": {
+ "expression": {
+ "id": 17457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "23872:3:39",
+ "subExpression": {
+ "id": 17456,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17449,
+ "src": "23872:1:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17458,
+ "nodeType": "ExpressionStatement",
+ "src": "23872:3:39"
+ },
+ "nodeType": "ForStatement",
+ "src": "23829:222:39"
+ }
+ ]
+ },
+ "id": 17483,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_updateCredentialVerifiers",
+ "nameLocation": "23451:26:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17426,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17422,
+ "mutability": "mutable",
+ "name": "circuitIds",
+ "nameLocation": "23505:10:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17483,
+ "src": "23487:28:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17420,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "23487:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 17421,
+ "nodeType": "ArrayTypeName",
+ "src": "23487:8:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17425,
+ "mutability": "mutable",
+ "name": "verifierAddresses",
+ "nameLocation": "23544:17:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17483,
+ "src": "23525:36:39",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17423,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "23525:7:39",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 17424,
+ "nodeType": "ArrayTypeName",
+ "src": "23525:9:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23477:90:39"
+ },
+ "returnParameters": {
+ "id": 17427,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "23577:0:39"
+ },
+ "scope": 17540,
+ "src": "23442:615:39",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17538,
+ "nodeType": "Block",
+ "src": "24230:1331:39",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17493,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "24300:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17494,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "24323:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "24300:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17497,
+ "indexExpression": {
+ "expression": {
+ "id": 17495,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "24355:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "24372:27:39",
+ "memberName": "CREDENTIAL_HASH_INDEX_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14476,
+ "src": "24355:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24300:117:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17498,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "24446:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17499,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "24469:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "24446:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17502,
+ "indexExpression": {
+ "expression": {
+ "id": 17500,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "24501:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "24518:27:39",
+ "memberName": "CREDENTIAL_HASH_VALUE_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14480,
+ "src": "24501:44:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24446:117:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17503,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "24595:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17504,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "24618:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "24595:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17507,
+ "indexExpression": {
+ "expression": {
+ "id": 17505,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "24650:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "24667:30:39",
+ "memberName": "CREDENTIAL_ISSUANCE_DATE_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14492,
+ "src": "24650:47:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24595:120:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17508,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "24746:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17509,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "24769:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "24746:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17512,
+ "indexExpression": {
+ "expression": {
+ "id": 17510,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "24801:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17511,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "24818:29:39",
+ "memberName": "CREDENTIAL_CURRENT_DATE_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14488,
+ "src": "24801:46:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24746:119:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17513,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "24897:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17514,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "24920:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "24897:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17517,
+ "indexExpression": {
+ "expression": {
+ "id": 17515,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "24952:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "24969:30:39",
+ "memberName": "CREDENTIAL_TEMPLATE_ROOT_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14496,
+ "src": "24952:47:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "24897:120:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17518,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "25058:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17519,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "25081:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "25058:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17522,
+ "indexExpression": {
+ "expression": {
+ "id": 17520,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "25113:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "25130:24:39",
+ "memberName": "CREDENTIAL_LINK_ID_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14484,
+ "src": "25113:41:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "25058:114:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17525,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "25235:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17526,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "25258:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "25235:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17529,
+ "indexExpression": {
+ "expression": {
+ "id": 17527,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "25294:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17528,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "25311:33:39",
+ "memberName": "CREDENTIAL_REVOCATION_NONCE_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14504,
+ "src": "25294:50:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "25235:131:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "25207:6:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint64_$",
+ "typeString": "type(uint64)"
+ },
+ "typeName": {
+ "id": 17523,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "25207:6:39",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 17530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "25207:177:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ {
+ "baseExpression": {
+ "expression": {
+ "id": 17531,
+ "name": "credentialCircuitProof",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 17486,
+ "src": "25417:22:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory"
+ }
+ },
+ "id": 17532,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "25440:10:39",
+ "memberName": "pubSignals",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14683,
+ "src": "25417:33:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
+ "typeString": "uint256[8] memory"
+ }
+ },
+ "id": 17535,
+ "indexExpression": {
+ "expression": {
+ "id": 17533,
+ "name": "CircuitConstants",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 14505,
+ "src": "25472:16:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$",
+ "typeString": "type(library CircuitConstants)"
+ }
+ },
+ "id": 17534,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "25489:32:39",
+ "memberName": "CREDENTIAL_ISSUER_DID_HASH_INDEX",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 14500,
+ "src": "25472:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "25417:122:39",
+ "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"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 17492,
+ "name": "ProofInputs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16150,
+ "src": "24259:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_ProofInputs_$16150_storage_ptr_$",
+ "typeString": "type(struct PassportCredentialIssuer.ProofInputs storage pointer)"
+ }
+ },
+ "id": 17536,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "24289:9:39",
+ "24435:9:39",
+ "24581:12:39",
+ "24733:11:39",
+ "24883:12:39",
+ "25035:21:39",
+ "25190:15:39",
+ "25402:13:39"
+ ],
+ "names": [
+ "hashIndex",
+ "hashValue",
+ "issuanceDate",
+ "currentDate",
+ "templateRoot",
+ "linkIdCredentialProof",
+ "revocationNonce",
+ "issuerDidHash"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "24259:1295:39",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs memory"
+ }
+ },
+ "functionReturnParameters": 17491,
+ "id": 17537,
+ "nodeType": "Return",
+ "src": "24240:1314:39"
+ }
+ ]
+ },
+ "id": 17539,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_extractProofInputs",
+ "nameLocation": "24072:19:39",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17487,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17486,
+ "mutability": "mutable",
+ "name": "credentialCircuitProof",
+ "nameLocation": "24158:22:39",
+ "nodeType": "VariableDeclaration",
+ "scope": 17539,
+ "src": "24101:79:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ },
+ "typeName": {
+ "id": 17485,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17484,
+ "name": "ICredentialCircuitVerifier.CredentialCircuitProof",
+ "nameLocations": [
+ "24101:26:39",
+ "24128:22:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 14684,
+ "src": "24101:49:39"
+ },
+ "referencedDeclaration": 14684,
+ "src": "24101:49:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr",
+ "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24091:95:39"
+ },
+ "returnParameters": {
+ "id": 17491,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17490,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17539,
+ "src": "24210:18:39",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs"
+ },
+ "typeName": {
+ "id": 17489,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 17488,
+ "name": "ProofInputs",
+ "nameLocations": [
+ "24210:11:39"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 16150,
+ "src": "24210:11:39"
+ },
+ "referencedDeclaration": 16150,
+ "src": "24210:11:39",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_ProofInputs_$16150_storage_ptr",
+ "typeString": "struct PassportCredentialIssuer.ProofInputs"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24209:20:39"
+ },
+ "scope": 17540,
+ "src": "24063:1498:39",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 17541,
+ "src": "2021:23542:39",
+ "usedErrors": [
+ 4804,
+ 4809,
+ 4985,
+ 4988,
+ 16000,
+ 16004,
+ 16008,
+ 16014,
+ 16018,
+ 16022,
+ 16026,
+ 16030,
+ 16034,
+ 16040,
+ 16042,
+ 16044,
+ 16046,
+ 16050,
+ 16054,
+ 16058,
+ 16062,
+ 16064,
+ 16066,
+ 16068,
+ 16070,
+ 16074
+ ],
+ "usedEvents": [
+ 4668,
+ 4815,
+ 4993,
+ 5631,
+ 16199,
+ 16204,
+ 16209,
+ 16214,
+ 16219,
+ 16226,
+ 16231
+ ]
+ }
+ ],
+ "src": "36:25528:39"
+ },
+ "id": 39
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha1.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha1.sol",
+ "exportedSymbols": {
+ "Verifier_idcard_sha1": [
+ 17679
+ ]
+ },
+ "id": 17680,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 17542,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "798:31:40"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Verifier_idcard_sha1",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 17679,
+ "linearizedBaseContracts": [
+ 17679
+ ],
+ "name": "Verifier_idcard_sha1",
+ "nameLocation": "840:20:40",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 17545,
+ "mutability": "constant",
+ "name": "r",
+ "nameLocation": "909:1:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "892:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17543,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "892:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137",
+ "id": 17544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "916:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...5617"
+ },
+ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17548,
+ "mutability": "constant",
+ "name": "q",
+ "nameLocation": "1039:1:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1022:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17546,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1022:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833",
+ "id": 17547,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1045:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...8583"
+ },
+ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17551,
+ "mutability": "constant",
+ "name": "alphax",
+ "nameLocation": "1175:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1158:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17549,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1158:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432",
+ "id": 17550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1185:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1",
+ "typeString": "int_const 2049...(69 digits omitted)...3042"
+ },
+ "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17554,
+ "mutability": "constant",
+ "name": "alphay",
+ "nameLocation": "1285:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1268:103:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17552,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1268:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538",
+ "id": 17553,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1295:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1",
+ "typeString": "int_const 9383...(68 digits omitted)...5958"
+ },
+ "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17557,
+ "mutability": "constant",
+ "name": "betax1",
+ "nameLocation": "1394:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1377:103:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17555,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1377:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332",
+ "id": 17556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1404:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1",
+ "typeString": "int_const 4252...(68 digits omitted)...7132"
+ },
+ "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17560,
+ "mutability": "constant",
+ "name": "betax2",
+ "nameLocation": "1503:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1486:103:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17558,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1486:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331",
+ "id": 17559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1513:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1",
+ "typeString": "int_const 6375...(68 digits omitted)...8731"
+ },
+ "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17563,
+ "mutability": "constant",
+ "name": "betay1",
+ "nameLocation": "1612:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1595:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17561,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1595:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739",
+ "id": 17562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1622:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1",
+ "typeString": "int_const 2184...(69 digits omitted)...6679"
+ },
+ "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17566,
+ "mutability": "constant",
+ "name": "betay2",
+ "nameLocation": "1722:6:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1705:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17564,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1705:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536",
+ "id": 17565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1732:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1",
+ "typeString": "int_const 1050...(69 digits omitted)...6856"
+ },
+ "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17569,
+ "mutability": "constant",
+ "name": "gammax1",
+ "nameLocation": "1832:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1815:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17567,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1815:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334",
+ "id": 17568,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1842:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1",
+ "typeString": "int_const 1155...(69 digits omitted)...5634"
+ },
+ "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17572,
+ "mutability": "constant",
+ "name": "gammax2",
+ "nameLocation": "1942:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "1925:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17570,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1925:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831",
+ "id": 17571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1952:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1",
+ "typeString": "int_const 1085...(69 digits omitted)...2781"
+ },
+ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17575,
+ "mutability": "constant",
+ "name": "gammay1",
+ "nameLocation": "2052:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2035:103:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17573,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2035:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331",
+ "id": 17574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2062:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1",
+ "typeString": "int_const 4082...(68 digits omitted)...3531"
+ },
+ "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17578,
+ "mutability": "constant",
+ "name": "gammay2",
+ "nameLocation": "2161:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2144:103:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17576,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2144:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330",
+ "id": 17577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2171:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1",
+ "typeString": "int_const 8495...(68 digits omitted)...1930"
+ },
+ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17581,
+ "mutability": "constant",
+ "name": "deltax1",
+ "nameLocation": "2270:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2253:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17579,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2253:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3137363139393738303636393831303233383135373836313937353339383931383334353935343637313031383030313638303035343430363032373630373236323532343139323234313832",
+ "id": 17580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2280:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17619978066981023815786197539891834595467101800168005440602760726252419224182_by_1",
+ "typeString": "int_const 1761...(69 digits omitted)...4182"
+ },
+ "value": "17619978066981023815786197539891834595467101800168005440602760726252419224182"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17584,
+ "mutability": "constant",
+ "name": "deltax2",
+ "nameLocation": "2380:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2363:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17582,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2363:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138393737363731373531353539303936353536393532303839373733393539343539393937383338313930303736383035333335353835353233343339343135383238363633303431303931",
+ "id": 17583,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2390:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18977671751559096556952089773959459997838190076805335585523439415828663041091_by_1",
+ "typeString": "int_const 1897...(69 digits omitted)...1091"
+ },
+ "value": "18977671751559096556952089773959459997838190076805335585523439415828663041091"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17587,
+ "mutability": "constant",
+ "name": "deltay1",
+ "nameLocation": "2490:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2473:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17585,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2473:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230393038393333343933353830333437353436323534373338343938313734313534383338373034383936343333383536373639323232323533313933343939353431383131383238363838",
+ "id": 17586,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2500:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20908933493580347546254738498174154838704896433856769222253193499541811828688_by_1",
+ "typeString": "int_const 2090...(69 digits omitted)...8688"
+ },
+ "value": "20908933493580347546254738498174154838704896433856769222253193499541811828688"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17590,
+ "mutability": "constant",
+ "name": "deltay2",
+ "nameLocation": "2600:7:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2583:104:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17588,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2583:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3134323238323233393130363338313833393433383438363330393732363232353339313038383832313532363631393236383536323135393531353136383436333133343337323237313030",
+ "id": 17589,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2610:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14228223910638183943848630972622539108882152661926856215951516846313437227100_by_1",
+ "typeString": "int_const 1422...(69 digits omitted)...7100"
+ },
+ "value": "14228223910638183943848630972622539108882152661926856215951516846313437227100"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17593,
+ "mutability": "constant",
+ "name": "IC0x",
+ "nameLocation": "2716:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2699:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17591,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2699:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138393936323739393830303338373131373538313933363930333534393430373135373832353631323335333830333432323836343037353534313335373430323031353133373739323739",
+ "id": 17592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2723:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18996279980038711758193690354940715782561235380342286407554135740201513779279_by_1",
+ "typeString": "int_const 1899...(69 digits omitted)...9279"
+ },
+ "value": "18996279980038711758193690354940715782561235380342286407554135740201513779279"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17596,
+ "mutability": "constant",
+ "name": "IC0y",
+ "nameLocation": "2823:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2806:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17594,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2806:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131363235383837333935323539363335353030363730343634343936313837373137393538393634373036363434303831333238333537303330313337353430313933363734373032303135",
+ "id": 17595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2830:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11625887395259635500670464496187717958964706644081328357030137540193674702015_by_1",
+ "typeString": "int_const 1162...(69 digits omitted)...2015"
+ },
+ "value": "11625887395259635500670464496187717958964706644081328357030137540193674702015"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17599,
+ "mutability": "constant",
+ "name": "IC1x",
+ "nameLocation": "2935:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "2918:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17597,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2918:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32383033333732333032353432323739303631393932383031383036363334323738393236323931313934303032363139363130333930323931353332373532363234353733303134313733",
+ "id": 17598,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2942:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2803372302542279061992801806634278926291194002619610390291532752624573014173_by_1",
+ "typeString": "int_const 2803...(68 digits omitted)...4173"
+ },
+ "value": "2803372302542279061992801806634278926291194002619610390291532752624573014173"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17602,
+ "mutability": "constant",
+ "name": "IC1y",
+ "nameLocation": "3041:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3024:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17600,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3024:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130323939353430353038353630373538383236303937343835303334373331313532353933343431353836353535353431393936353335393136363735383832393037333735343734343335",
+ "id": 17601,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3048:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10299540508560758826097485034731152593441586555541996535916675882907375474435_by_1",
+ "typeString": "int_const 1029...(69 digits omitted)...4435"
+ },
+ "value": "10299540508560758826097485034731152593441586555541996535916675882907375474435"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17605,
+ "mutability": "constant",
+ "name": "IC2x",
+ "nameLocation": "3153:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3136:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17603,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3136:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "33353135353537303638353337323438313534343835303837353834313330313730393534383536333034393835323731383839313836343532383931393234343537363430303632393730",
+ "id": 17604,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3160:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3515557068537248154485087584130170954856304985271889186452891924457640062970_by_1",
+ "typeString": "int_const 3515...(68 digits omitted)...2970"
+ },
+ "value": "3515557068537248154485087584130170954856304985271889186452891924457640062970"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17608,
+ "mutability": "constant",
+ "name": "IC2y",
+ "nameLocation": "3259:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3242:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17606,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3242:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31343730383137323334333731373639353932353732383835343738383435353434333634353430383737393035393633393731333736393631373933303136343035303038303533363833",
+ "id": 17607,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3266:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1470817234371769592572885478845544364540877905963971376961793016405008053683_by_1",
+ "typeString": "int_const 1470...(68 digits omitted)...3683"
+ },
+ "value": "1470817234371769592572885478845544364540877905963971376961793016405008053683"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17611,
+ "mutability": "constant",
+ "name": "IC3x",
+ "nameLocation": "3370:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3353:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17609,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3353:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39383832363233323738383232383534393136303730343030333537303134303536343232383936333934353532333432383038333536383433353038373437383136393834313732363434",
+ "id": 17610,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3377:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9882623278822854916070400357014056422896394552342808356843508747816984172644_by_1",
+ "typeString": "int_const 9882...(68 digits omitted)...2644"
+ },
+ "value": "9882623278822854916070400357014056422896394552342808356843508747816984172644"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17614,
+ "mutability": "constant",
+ "name": "IC3y",
+ "nameLocation": "3476:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3459:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17612,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3459:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3135353331373137353539313831343834343632383530373635303535383736383633323733363634393330333135373132303839303634323432333339303439303838323536333330343337",
+ "id": 17613,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3483:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15531717559181484462850765055876863273664930315712089064242339049088256330437_by_1",
+ "typeString": "int_const 1553...(69 digits omitted)...0437"
+ },
+ "value": "15531717559181484462850765055876863273664930315712089064242339049088256330437"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17617,
+ "mutability": "constant",
+ "name": "IC4x",
+ "nameLocation": "3588:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3571:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17615,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3571:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31393031383938363934333638363738313636353737323039353837363835333435363936323732353936343832393232363533303439373637393236353130353632323938353938393734",
+ "id": 17616,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3595:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1901898694368678166577209587685345696272596482922653049767926510562298598974_by_1",
+ "typeString": "int_const 1901...(68 digits omitted)...8974"
+ },
+ "value": "1901898694368678166577209587685345696272596482922653049767926510562298598974"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17620,
+ "mutability": "constant",
+ "name": "IC4y",
+ "nameLocation": "3694:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3677:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17618,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3677:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35303538353732343436363530373230333433373830383936303139383934373039373135363635333737303232393838353335303330323432383735393834373231333038323633373631",
+ "id": 17619,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3701:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5058572446650720343780896019894709715665377022988535030242875984721308263761_by_1",
+ "typeString": "int_const 5058...(68 digits omitted)...3761"
+ },
+ "value": "5058572446650720343780896019894709715665377022988535030242875984721308263761"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17623,
+ "mutability": "constant",
+ "name": "IC5x",
+ "nameLocation": "3805:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3788:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3788:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343331383338323131353436303738383438313432363433353834333936333533313437323235313639333537303035343835313933343135383530313136373231393339333133363938",
+ "id": 17622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3812:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20431838211546078848142643584396353147225169357005485193415850116721939313698_by_1",
+ "typeString": "int_const 2043...(69 digits omitted)...3698"
+ },
+ "value": "20431838211546078848142643584396353147225169357005485193415850116721939313698"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17626,
+ "mutability": "constant",
+ "name": "IC5y",
+ "nameLocation": "3912:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "3895:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17624,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3895:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132363734363837363237343633393838313334393034333336353039373435373935363134393434333633373432313635363732323439313039323537393335343536393835363438383835",
+ "id": 17625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3919:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12674687627463988134904336509745795614944363742165672249109257935456985648885_by_1",
+ "typeString": "int_const 1267...(69 digits omitted)...8885"
+ },
+ "value": "12674687627463988134904336509745795614944363742165672249109257935456985648885"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17629,
+ "mutability": "constant",
+ "name": "IC6x",
+ "nameLocation": "4024:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4007:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17627,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4007:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303134343335393931393336323138303436373236353135373336333035393132383735323039333732303237353031323136313831313732313930363036333136333238373437343732",
+ "id": 17628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4031:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4014435991936218046726515736305912875209372027501216181172190606316328747472_by_1",
+ "typeString": "int_const 4014...(68 digits omitted)...7472"
+ },
+ "value": "4014435991936218046726515736305912875209372027501216181172190606316328747472"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17632,
+ "mutability": "constant",
+ "name": "IC6y",
+ "nameLocation": "4130:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4113:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17630,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4113:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3136393132353835303137333532313035383730393839373936363535383534393638373931323139373239323337363334343835383436353835303634363936313334333734303435393334",
+ "id": 17631,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4137:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16912585017352105870989796655854968791219729237634485846585064696134374045934_by_1",
+ "typeString": "int_const 1691...(69 digits omitted)...5934"
+ },
+ "value": "16912585017352105870989796655854968791219729237634485846585064696134374045934"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17635,
+ "mutability": "constant",
+ "name": "IC7x",
+ "nameLocation": "4242:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4225:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17633,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4225:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132353533313331313037393835343231343434343132333332313738393536313533353630313836393237363137313231383631343138393339323837333230313738393430393735363832",
+ "id": 17634,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4249:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12553131107985421444412332178956153560186927617121861418939287320178940975682_by_1",
+ "typeString": "int_const 1255...(69 digits omitted)...5682"
+ },
+ "value": "12553131107985421444412332178956153560186927617121861418939287320178940975682"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17638,
+ "mutability": "constant",
+ "name": "IC7y",
+ "nameLocation": "4349:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4332:101:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17636,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4332:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3135323131333734353037393637313632323530383235303330313237323638353232353631353535343634373232323533363637353034333836353937383332323837333538313138373737",
+ "id": 17637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4356:77:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15211374507967162250825030127268522561555464722253667504386597832287358118777_by_1",
+ "typeString": "int_const 1521...(69 digits omitted)...8777"
+ },
+ "value": "15211374507967162250825030127268522561555464722253667504386597832287358118777"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17641,
+ "mutability": "constant",
+ "name": "IC8x",
+ "nameLocation": "4461:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4444:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17639,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4444:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333630383232333835313732353232363433363539343034393030333836373238363530313839383236323339313536353634393535353839353531383635313838383138373739323434",
+ "id": 17640,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4468:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9360822385172522643659404900386728650189826239156564955589551865188818779244_by_1",
+ "typeString": "int_const 9360...(68 digits omitted)...9244"
+ },
+ "value": "9360822385172522643659404900386728650189826239156564955589551865188818779244"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17644,
+ "mutability": "constant",
+ "name": "IC8y",
+ "nameLocation": "4567:4:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4550:100:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17642,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4550:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31363030373430393737393732393830323035333036383935313038393933333336353633363335333239343937303139383330303635383137383130313933353930313533393732373734",
+ "id": 17643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4574:76:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1600740977972980205306895108993336563635329497019830065817810193590153972774_by_1",
+ "typeString": "int_const 1600...(68 digits omitted)...2774"
+ },
+ "value": "1600740977972980205306895108993336563635329497019830065817810193590153972774"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17647,
+ "mutability": "constant",
+ "name": "pVk",
+ "nameLocation": "4698:3:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4682:23:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17645,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4682:6:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 17646,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4704:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17650,
+ "mutability": "constant",
+ "name": "pPairing",
+ "nameLocation": "4727:8:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4711:30:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17648,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4711:6:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "313238",
+ "id": 17649,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4738:3:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17653,
+ "mutability": "constant",
+ "name": "pLastMem",
+ "nameLocation": "4764:8:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17679,
+ "src": "4748:30:40",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17651,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4748:6:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "383936",
+ "id": 17652,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4775:3:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_896_by_1",
+ "typeString": "int_const 896"
+ },
+ "value": "896"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17677,
+ "nodeType": "Block",
+ "src": "4932:4853:40",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4951:4827:40",
+ "nodeType": "YulBlock",
+ "src": "4951:4827:40",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4988:140:40",
+ "nodeType": "YulBlock",
+ "src": "4988:140:40",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5026:88:40",
+ "nodeType": "YulBlock",
+ "src": "5026:88:40",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5055:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5055:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5058:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5058:1:40",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5048:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5048:6:40"
+ },
+ "nativeSrc": "5048:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5048:12:40"
+ },
+ "nativeSrc": "5048:12:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5048:12:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5088:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5088:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5091:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5091:4:40",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5081:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5081:6:40"
+ },
+ "nativeSrc": "5081:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5081:15:40"
+ },
+ "nativeSrc": "5081:15:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5081:15:40"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "v",
+ "nativeSrc": "5019:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "5019:1:40"
+ },
+ {
+ "name": "r",
+ "nativeSrc": "5022:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "5022:1:40"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5016:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "5016:2:40"
+ },
+ "nativeSrc": "5016:8:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5016:8:40"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5009:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5009:6:40"
+ },
+ "nativeSrc": "5009:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5009:16:40"
+ },
+ "nativeSrc": "5006:108:40",
+ "nodeType": "YulIf",
+ "src": "5006:108:40"
+ }
+ ]
+ },
+ "name": "checkField",
+ "nativeSrc": "4965:163:40",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "v",
+ "nativeSrc": "4985:1:40",
+ "nodeType": "YulTypedName",
+ "src": "4985:1:40",
+ "type": ""
+ }
+ ],
+ "src": "4965:163:40"
+ },
+ {
+ "body": {
+ "nativeSrc": "5265:705:40",
+ "nodeType": "YulBlock",
+ "src": "5265:705:40",
+ "statements": [
+ {
+ "nativeSrc": "5283:11:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5283:11:40",
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "5287:7:40",
+ "nodeType": "YulTypedName",
+ "src": "5287:7:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5311:22:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5311:22:40",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5328:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5328:4:40",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5322:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "5322:5:40"
+ },
+ "nativeSrc": "5322:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5322:11:40"
+ },
+ "variables": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5315:3:40",
+ "nodeType": "YulTypedName",
+ "src": "5315:3:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5357:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5357:3:40"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5362:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "5362:1:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5350:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5350:6:40"
+ },
+ "nativeSrc": "5350:14:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5350:14:40"
+ },
+ "nativeSrc": "5350:14:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5350:14:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5392:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5392:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5397:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5397:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5388:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5388:3:40"
+ },
+ "nativeSrc": "5388:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5388:12:40"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5402:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "5402:1:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5381:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5381:6:40"
+ },
+ "nativeSrc": "5381:23:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5381:23:40"
+ },
+ "nativeSrc": "5381:23:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5381:23:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5432:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5432:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5437:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5437:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5428:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5428:3:40"
+ },
+ "nativeSrc": "5428:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5428:12:40"
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5442:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "5442:1:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5421:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5421:6:40"
+ },
+ "nativeSrc": "5421:23:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5421:23:40"
+ },
+ "nativeSrc": "5421:23:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5421:23:40"
+ },
+ {
+ "nativeSrc": "5462:60:40",
+ "nodeType": "YulAssignment",
+ "src": "5462:60:40",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5488:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5488:3:40"
+ },
+ "nativeSrc": "5488:5:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5488:5:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5495:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5495:4:40",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5484:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5484:3:40"
+ },
+ "nativeSrc": "5484:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5484:16:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5502:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5502:1:40",
+ "type": "",
+ "value": "7"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5505:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5505:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5510:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5510:2:40",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5514:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5514:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5519:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5519:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5473:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "5473:10:40"
+ },
+ "nativeSrc": "5473:49:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5473:49:40"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5462:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "5462:7:40"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5559:88:40",
+ "nodeType": "YulBlock",
+ "src": "5559:88:40",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5588:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5588:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5591:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5591:1:40",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5581:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5581:6:40"
+ },
+ "nativeSrc": "5581:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5581:12:40"
+ },
+ "nativeSrc": "5581:12:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5581:12:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5621:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5621:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5624:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5624:4:40",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5614:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5614:6:40"
+ },
+ "nativeSrc": "5614:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5614:15:40"
+ },
+ "nativeSrc": "5614:15:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5614:15:40"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5550:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "5550:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5543:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5543:6:40"
+ },
+ "nativeSrc": "5543:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5543:15:40"
+ },
+ "nativeSrc": "5540:107:40",
+ "nodeType": "YulIf",
+ "src": "5540:107:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5676:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5676:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5681:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5681:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5672:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5672:3:40"
+ },
+ "nativeSrc": "5672:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5672:12:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5692:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "5692:2:40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5686:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "5686:5:40"
+ },
+ "nativeSrc": "5686:9:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5686:9:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5665:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5665:6:40"
+ },
+ "nativeSrc": "5665:31:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5665:31:40"
+ },
+ "nativeSrc": "5665:31:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5665:31:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5724:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5724:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5729:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5729:2:40",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5720:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5720:3:40"
+ },
+ "nativeSrc": "5720:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5720:12:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5744:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "5744:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5748:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5748:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5740:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5740:3:40"
+ },
+ "nativeSrc": "5740:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5740:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5734:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "5734:5:40"
+ },
+ "nativeSrc": "5734:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5734:18:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5713:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5713:6:40"
+ },
+ "nativeSrc": "5713:40:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5713:40:40"
+ },
+ "nativeSrc": "5713:40:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5713:40:40"
+ },
+ {
+ "nativeSrc": "5771:60:40",
+ "nodeType": "YulAssignment",
+ "src": "5771:60:40",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5797:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5797:3:40"
+ },
+ "nativeSrc": "5797:5:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5797:5:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5804:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5804:4:40",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5793:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5793:3:40"
+ },
+ "nativeSrc": "5793:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5793:16:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5811:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5811:1:40",
+ "type": "",
+ "value": "6"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5814:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "5814:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5819:3:40",
+ "nodeType": "YulLiteral",
+ "src": "5819:3:40",
+ "type": "",
+ "value": "128"
+ },
+ {
+ "name": "pR",
+ "nativeSrc": "5824:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "5824:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5828:2:40",
+ "nodeType": "YulLiteral",
+ "src": "5828:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5782:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "5782:10:40"
+ },
+ "nativeSrc": "5782:49:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5782:49:40"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5771:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "5771:7:40"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5868:88:40",
+ "nodeType": "YulBlock",
+ "src": "5868:88:40",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5897:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5897:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5900:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5900:1:40",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5890:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5890:6:40"
+ },
+ "nativeSrc": "5890:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5890:12:40"
+ },
+ "nativeSrc": "5890:12:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5890:12:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5930:1:40",
+ "nodeType": "YulLiteral",
+ "src": "5930:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5933:4:40",
+ "nodeType": "YulLiteral",
+ "src": "5933:4:40",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5923:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5923:6:40"
+ },
+ "nativeSrc": "5923:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5923:15:40"
+ },
+ "nativeSrc": "5923:15:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "5923:15:40"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5859:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "5859:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5852:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "5852:6:40"
+ },
+ "nativeSrc": "5852:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "5852:15:40"
+ },
+ "nativeSrc": "5849:107:40",
+ "nodeType": "YulIf",
+ "src": "5849:107:40"
+ }
+ ]
+ },
+ "name": "g1_mulAccC",
+ "nativeSrc": "5232:738:40",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pR",
+ "nativeSrc": "5252:2:40",
+ "nodeType": "YulTypedName",
+ "src": "5252:2:40",
+ "type": ""
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5256:1:40",
+ "nodeType": "YulTypedName",
+ "src": "5256:1:40",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5259:1:40",
+ "nodeType": "YulTypedName",
+ "src": "5259:1:40",
+ "type": ""
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5262:1:40",
+ "nodeType": "YulTypedName",
+ "src": "5262:1:40",
+ "type": ""
+ }
+ ],
+ "src": "5232:738:40"
+ },
+ {
+ "body": {
+ "nativeSrc": "6044:2820:40",
+ "nodeType": "YulBlock",
+ "src": "6044:2820:40",
+ "statements": [
+ {
+ "nativeSrc": "6062:36:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6062:36:40",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6083:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6083:4:40"
+ },
+ {
+ "name": "pPairing",
+ "nativeSrc": "6089:8:40",
+ "nodeType": "YulIdentifier",
+ "src": "6089:8:40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6079:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6079:3:40"
+ },
+ "nativeSrc": "6079:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6079:19:40"
+ },
+ "variables": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "6066:9:40",
+ "nodeType": "YulTypedName",
+ "src": "6066:9:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6115:26:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6115:26:40",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6131:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6131:4:40"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "6137:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6137:3:40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6127:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6127:3:40"
+ },
+ "nativeSrc": "6127:14:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6127:14:40"
+ },
+ "variables": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6119:4:40",
+ "nodeType": "YulTypedName",
+ "src": "6119:4:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6166:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6166:4:40"
+ },
+ {
+ "name": "IC0x",
+ "nativeSrc": "6172:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6172:4:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6159:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "6159:6:40"
+ },
+ "nativeSrc": "6159:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6159:18:40"
+ },
+ "nativeSrc": "6159:18:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6159:18:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6205:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6205:4:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6211:2:40",
+ "nodeType": "YulLiteral",
+ "src": "6211:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6201:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6201:3:40"
+ },
+ "nativeSrc": "6201:13:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6201:13:40"
+ },
+ {
+ "name": "IC0y",
+ "nativeSrc": "6216:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6216:4:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6194:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "6194:6:40"
+ },
+ "nativeSrc": "6194:27:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6194:27:40"
+ },
+ "nativeSrc": "6194:27:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6194:27:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6322:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6322:4:40"
+ },
+ {
+ "name": "IC1x",
+ "nativeSrc": "6328:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6328:4:40"
+ },
+ {
+ "name": "IC1y",
+ "nativeSrc": "6334:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6334:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6357:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6357:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6369:1:40",
+ "nodeType": "YulLiteral",
+ "src": "6369:1:40",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6353:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6353:3:40"
+ },
+ "nativeSrc": "6353:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6353:18:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6340:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6340:12:40"
+ },
+ "nativeSrc": "6340:32:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6340:32:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6311:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6311:10:40"
+ },
+ "nativeSrc": "6311:62:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6311:62:40"
+ },
+ "nativeSrc": "6311:62:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6311:62:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6418:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6418:4:40"
+ },
+ {
+ "name": "IC2x",
+ "nativeSrc": "6424:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6424:4:40"
+ },
+ {
+ "name": "IC2y",
+ "nativeSrc": "6430:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6430:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6453:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6453:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6465:2:40",
+ "nodeType": "YulLiteral",
+ "src": "6465:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6449:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6449:3:40"
+ },
+ "nativeSrc": "6449:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6449:19:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6436:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6436:12:40"
+ },
+ "nativeSrc": "6436:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6436:33:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6407:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6407:10:40"
+ },
+ "nativeSrc": "6407:63:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6407:63:40"
+ },
+ "nativeSrc": "6407:63:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6407:63:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6515:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6515:4:40"
+ },
+ {
+ "name": "IC3x",
+ "nativeSrc": "6521:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6521:4:40"
+ },
+ {
+ "name": "IC3y",
+ "nativeSrc": "6527:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6527:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6550:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6550:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6562:2:40",
+ "nodeType": "YulLiteral",
+ "src": "6562:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6546:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6546:3:40"
+ },
+ "nativeSrc": "6546:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6546:19:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6533:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6533:12:40"
+ },
+ "nativeSrc": "6533:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6533:33:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6504:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6504:10:40"
+ },
+ "nativeSrc": "6504:63:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6504:63:40"
+ },
+ "nativeSrc": "6504:63:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:63:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6612:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6612:4:40"
+ },
+ {
+ "name": "IC4x",
+ "nativeSrc": "6618:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6618:4:40"
+ },
+ {
+ "name": "IC4y",
+ "nativeSrc": "6624:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6624:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6647:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6647:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6659:2:40",
+ "nodeType": "YulLiteral",
+ "src": "6659:2:40",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6643:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6643:3:40"
+ },
+ "nativeSrc": "6643:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6643:19:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6630:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6630:12:40"
+ },
+ "nativeSrc": "6630:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6630:33:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6601:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6601:10:40"
+ },
+ "nativeSrc": "6601:63:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6601:63:40"
+ },
+ "nativeSrc": "6601:63:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6601:63:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6709:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6709:4:40"
+ },
+ {
+ "name": "IC5x",
+ "nativeSrc": "6715:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6715:4:40"
+ },
+ {
+ "name": "IC5y",
+ "nativeSrc": "6721:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6721:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6744:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6744:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6756:3:40",
+ "nodeType": "YulLiteral",
+ "src": "6756:3:40",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6740:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6740:3:40"
+ },
+ "nativeSrc": "6740:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6740:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6727:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6727:12:40"
+ },
+ "nativeSrc": "6727:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6727:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6698:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6698:10:40"
+ },
+ "nativeSrc": "6698:64:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6698:64:40"
+ },
+ "nativeSrc": "6698:64:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6698:64:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6807:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6807:4:40"
+ },
+ {
+ "name": "IC6x",
+ "nativeSrc": "6813:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6813:4:40"
+ },
+ {
+ "name": "IC6y",
+ "nativeSrc": "6819:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6819:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6842:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6842:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6854:3:40",
+ "nodeType": "YulLiteral",
+ "src": "6854:3:40",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6838:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6838:3:40"
+ },
+ "nativeSrc": "6838:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6838:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6825:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6825:12:40"
+ },
+ "nativeSrc": "6825:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6825:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6796:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6796:10:40"
+ },
+ "nativeSrc": "6796:64:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6796:64:40"
+ },
+ "nativeSrc": "6796:64:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6796:64:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6905:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6905:4:40"
+ },
+ {
+ "name": "IC7x",
+ "nativeSrc": "6911:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6911:4:40"
+ },
+ {
+ "name": "IC7y",
+ "nativeSrc": "6917:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "6917:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6940:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6940:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6952:3:40",
+ "nodeType": "YulLiteral",
+ "src": "6952:3:40",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6936:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "6936:3:40"
+ },
+ "nativeSrc": "6936:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6936:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6923:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "6923:12:40"
+ },
+ "nativeSrc": "6923:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6923:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6894:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6894:10:40"
+ },
+ "nativeSrc": "6894:64:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6894:64:40"
+ },
+ "nativeSrc": "6894:64:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6894:64:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "7003:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "7003:4:40"
+ },
+ {
+ "name": "IC8x",
+ "nativeSrc": "7009:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "7009:4:40"
+ },
+ {
+ "name": "IC8y",
+ "nativeSrc": "7015:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "7015:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "7038:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "7038:10:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7050:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7050:3:40",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7034:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7034:3:40"
+ },
+ "nativeSrc": "7034:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7034:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7021:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7021:12:40"
+ },
+ "nativeSrc": "7021:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7021:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6992:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "6992:10:40"
+ },
+ "nativeSrc": "6992:64:40",
+ "nodeType": "YulFunctionCall",
+ "src": "6992:64:40"
+ },
+ "nativeSrc": "6992:64:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "6992:64:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7120:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7120:9:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7144:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7144:2:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7131:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7131:12:40"
+ },
+ "nativeSrc": "7131:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7131:16:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7113:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7113:6:40"
+ },
+ "nativeSrc": "7113:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7113:35:40"
+ },
+ "nativeSrc": "7113:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7113:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7176:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7176:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7187:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7187:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7172:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7172:3:40"
+ },
+ "nativeSrc": "7172:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7172:18:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "q",
+ "nativeSrc": "7200:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "7200:1:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7220:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7220:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7224:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7224:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7216:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7216:3:40"
+ },
+ "nativeSrc": "7216:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7216:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7203:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7203:12:40"
+ },
+ "nativeSrc": "7203:25:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7203:25:40"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7196:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7196:3:40"
+ },
+ "nativeSrc": "7196:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7196:33:40"
+ },
+ {
+ "name": "q",
+ "nativeSrc": "7231:1:40",
+ "nodeType": "YulIdentifier",
+ "src": "7231:1:40"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "7192:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7192:3:40"
+ },
+ "nativeSrc": "7192:41:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7192:41:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7165:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7165:6:40"
+ },
+ "nativeSrc": "7165:69:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7165:69:40"
+ },
+ "nativeSrc": "7165:69:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7165:69:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7284:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7284:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7295:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7295:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7280:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7280:3:40"
+ },
+ "nativeSrc": "7280:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7280:18:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7313:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7313:2:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7300:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7300:12:40"
+ },
+ "nativeSrc": "7300:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7300:16:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7273:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7273:6:40"
+ },
+ "nativeSrc": "7273:44:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7273:44:40"
+ },
+ "nativeSrc": "7273:44:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7273:44:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7345:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7345:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7356:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7356:2:40",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7341:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7341:3:40"
+ },
+ "nativeSrc": "7341:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7341:18:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7378:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7378:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7382:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7382:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7374:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7374:3:40"
+ },
+ "nativeSrc": "7374:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7374:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7361:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7361:12:40"
+ },
+ "nativeSrc": "7361:25:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7361:25:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7334:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7334:6:40"
+ },
+ "nativeSrc": "7334:53:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7334:53:40"
+ },
+ "nativeSrc": "7334:53:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7334:53:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7415:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7415:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7426:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7426:3:40",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7411:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7411:3:40"
+ },
+ "nativeSrc": "7411:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7411:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7449:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7449:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7453:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7453:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7445:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7445:3:40"
+ },
+ "nativeSrc": "7445:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7445:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7432:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7432:12:40"
+ },
+ "nativeSrc": "7432:25:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7432:25:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7404:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7404:6:40"
+ },
+ "nativeSrc": "7404:54:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7404:54:40"
+ },
+ "nativeSrc": "7404:54:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7404:54:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7486:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7486:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7497:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7497:3:40",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7482:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7482:3:40"
+ },
+ "nativeSrc": "7482:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7482:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7520:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "7520:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7524:2:40",
+ "nodeType": "YulLiteral",
+ "src": "7524:2:40",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7516:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7516:3:40"
+ },
+ "nativeSrc": "7516:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7516:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7503:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "7503:12:40"
+ },
+ "nativeSrc": "7503:25:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7503:25:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7475:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7475:6:40"
+ },
+ "nativeSrc": "7475:54:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7475:54:40"
+ },
+ "nativeSrc": "7475:54:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7475:54:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7584:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7584:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7595:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7595:3:40",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7580:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7580:3:40"
+ },
+ "nativeSrc": "7580:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7580:19:40"
+ },
+ {
+ "name": "alphax",
+ "nativeSrc": "7601:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7601:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7573:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7573:6:40"
+ },
+ "nativeSrc": "7573:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7573:35:40"
+ },
+ "nativeSrc": "7573:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7573:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7636:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7636:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7647:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7647:3:40",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7632:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7632:3:40"
+ },
+ "nativeSrc": "7632:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7632:19:40"
+ },
+ {
+ "name": "alphay",
+ "nativeSrc": "7653:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7653:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7625:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7625:6:40"
+ },
+ "nativeSrc": "7625:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7625:35:40"
+ },
+ "nativeSrc": "7625:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7625:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7714:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7714:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7725:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7725:3:40",
+ "type": "",
+ "value": "256"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7710:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7710:3:40"
+ },
+ "nativeSrc": "7710:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7710:19:40"
+ },
+ {
+ "name": "betax1",
+ "nativeSrc": "7731:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7731:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7703:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7703:6:40"
+ },
+ "nativeSrc": "7703:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7703:35:40"
+ },
+ "nativeSrc": "7703:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7703:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7766:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7766:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7777:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7777:3:40",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7762:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7762:3:40"
+ },
+ "nativeSrc": "7762:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7762:19:40"
+ },
+ {
+ "name": "betax2",
+ "nativeSrc": "7783:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7783:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7755:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7755:6:40"
+ },
+ "nativeSrc": "7755:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7755:35:40"
+ },
+ "nativeSrc": "7755:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7755:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7818:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7818:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7829:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7829:3:40",
+ "type": "",
+ "value": "320"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7814:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7814:3:40"
+ },
+ "nativeSrc": "7814:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7814:19:40"
+ },
+ {
+ "name": "betay1",
+ "nativeSrc": "7835:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7835:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7807:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7807:6:40"
+ },
+ "nativeSrc": "7807:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7807:35:40"
+ },
+ "nativeSrc": "7807:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7807:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7870:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7870:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7881:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7881:3:40",
+ "type": "",
+ "value": "352"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7866:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7866:3:40"
+ },
+ "nativeSrc": "7866:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7866:19:40"
+ },
+ {
+ "name": "betay2",
+ "nativeSrc": "7887:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7887:6:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7859:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7859:6:40"
+ },
+ "nativeSrc": "7859:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7859:35:40"
+ },
+ "nativeSrc": "7859:35:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7859:35:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7947:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "7947:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7958:3:40",
+ "nodeType": "YulLiteral",
+ "src": "7958:3:40",
+ "type": "",
+ "value": "384"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7943:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7943:3:40"
+ },
+ "nativeSrc": "7943:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7943:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "7974:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "7974:4:40"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "7980:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7980:3:40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7970:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "7970:3:40"
+ },
+ "nativeSrc": "7970:14:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7970:14:40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7964:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "7964:5:40"
+ },
+ "nativeSrc": "7964:21:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7964:21:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7936:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "7936:6:40"
+ },
+ "nativeSrc": "7936:50:40",
+ "nodeType": "YulFunctionCall",
+ "src": "7936:50:40"
+ },
+ "nativeSrc": "7936:50:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "7936:50:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8014:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8014:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8025:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8025:3:40",
+ "type": "",
+ "value": "416"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8010:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8010:3:40"
+ },
+ "nativeSrc": "8010:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8010:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8041:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "8041:4:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pVk",
+ "nativeSrc": "8051:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8051:3:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8056:2:40",
+ "nodeType": "YulLiteral",
+ "src": "8056:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8047:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8047:3:40"
+ },
+ "nativeSrc": "8047:12:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8047:12:40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8037:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8037:3:40"
+ },
+ "nativeSrc": "8037:23:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8037:23:40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8031:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "8031:5:40"
+ },
+ "nativeSrc": "8031:30:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8031:30:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8003:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8003:6:40"
+ },
+ "nativeSrc": "8003:59:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8003:59:40"
+ },
+ "nativeSrc": "8003:59:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8003:59:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8118:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8118:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8129:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8129:3:40",
+ "type": "",
+ "value": "448"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8114:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8114:3:40"
+ },
+ "nativeSrc": "8114:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8114:19:40"
+ },
+ {
+ "name": "gammax1",
+ "nativeSrc": "8135:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8135:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8107:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8107:6:40"
+ },
+ "nativeSrc": "8107:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8107:36:40"
+ },
+ "nativeSrc": "8107:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8107:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8171:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8171:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8182:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8182:3:40",
+ "type": "",
+ "value": "480"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8167:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8167:3:40"
+ },
+ "nativeSrc": "8167:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8167:19:40"
+ },
+ {
+ "name": "gammax2",
+ "nativeSrc": "8188:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8188:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8160:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8160:6:40"
+ },
+ "nativeSrc": "8160:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8160:36:40"
+ },
+ "nativeSrc": "8160:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8160:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8224:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8224:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8235:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8235:3:40",
+ "type": "",
+ "value": "512"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8220:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8220:3:40"
+ },
+ "nativeSrc": "8220:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8220:19:40"
+ },
+ {
+ "name": "gammay1",
+ "nativeSrc": "8241:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8241:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8213:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8213:6:40"
+ },
+ "nativeSrc": "8213:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8213:36:40"
+ },
+ "nativeSrc": "8213:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8213:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8277:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8277:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8288:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8288:3:40",
+ "type": "",
+ "value": "544"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8273:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8273:3:40"
+ },
+ "nativeSrc": "8273:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8273:19:40"
+ },
+ {
+ "name": "gammay2",
+ "nativeSrc": "8294:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8294:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8266:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8266:6:40"
+ },
+ "nativeSrc": "8266:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8266:36:40"
+ },
+ "nativeSrc": "8266:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8266:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8352:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8352:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8363:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8363:3:40",
+ "type": "",
+ "value": "576"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8348:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8348:3:40"
+ },
+ "nativeSrc": "8348:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8348:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8382:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "8382:2:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8369:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "8369:12:40"
+ },
+ "nativeSrc": "8369:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8369:16:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8341:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8341:6:40"
+ },
+ "nativeSrc": "8341:45:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8341:45:40"
+ },
+ "nativeSrc": "8341:45:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8341:45:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8414:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8414:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8425:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8425:3:40",
+ "type": "",
+ "value": "608"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8410:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8410:3:40"
+ },
+ "nativeSrc": "8410:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8410:19:40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8448:2:40",
+ "nodeType": "YulIdentifier",
+ "src": "8448:2:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8452:2:40",
+ "nodeType": "YulLiteral",
+ "src": "8452:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8444:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8444:3:40"
+ },
+ "nativeSrc": "8444:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8444:11:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8431:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "8431:12:40"
+ },
+ "nativeSrc": "8431:25:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8431:25:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8403:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8403:6:40"
+ },
+ "nativeSrc": "8403:54:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8403:54:40"
+ },
+ "nativeSrc": "8403:54:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8403:54:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8512:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8512:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8523:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8523:3:40",
+ "type": "",
+ "value": "640"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8508:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8508:3:40"
+ },
+ "nativeSrc": "8508:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8508:19:40"
+ },
+ {
+ "name": "deltax1",
+ "nativeSrc": "8529:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8529:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8501:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8501:6:40"
+ },
+ "nativeSrc": "8501:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8501:36:40"
+ },
+ "nativeSrc": "8501:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8501:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8565:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8565:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8576:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8576:3:40",
+ "type": "",
+ "value": "672"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8561:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8561:3:40"
+ },
+ "nativeSrc": "8561:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8561:19:40"
+ },
+ {
+ "name": "deltax2",
+ "nativeSrc": "8582:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8582:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8554:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8554:6:40"
+ },
+ "nativeSrc": "8554:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8554:36:40"
+ },
+ "nativeSrc": "8554:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8554:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8618:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8618:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8629:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8629:3:40",
+ "type": "",
+ "value": "704"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8614:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8614:3:40"
+ },
+ "nativeSrc": "8614:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8614:19:40"
+ },
+ {
+ "name": "deltay1",
+ "nativeSrc": "8635:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8635:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8607:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8607:6:40"
+ },
+ "nativeSrc": "8607:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8607:36:40"
+ },
+ "nativeSrc": "8607:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8607:36:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8671:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8671:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8682:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8682:3:40",
+ "type": "",
+ "value": "736"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8667:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8667:3:40"
+ },
+ "nativeSrc": "8667:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8667:19:40"
+ },
+ {
+ "name": "deltay2",
+ "nativeSrc": "8688:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8688:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8660:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8660:6:40"
+ },
+ "nativeSrc": "8660:36:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8660:36:40"
+ },
+ "nativeSrc": "8660:36:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8660:36:40"
+ },
+ {
+ "nativeSrc": "8715:79:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8715:79:40",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "8745:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8745:3:40"
+ },
+ "nativeSrc": "8745:5:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8745:5:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8752:4:40",
+ "nodeType": "YulLiteral",
+ "src": "8752:4:40",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8741:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8741:3:40"
+ },
+ "nativeSrc": "8741:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8741:16:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8759:1:40",
+ "nodeType": "YulLiteral",
+ "src": "8759:1:40",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8762:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8762:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8773:3:40",
+ "nodeType": "YulLiteral",
+ "src": "8773:3:40",
+ "type": "",
+ "value": "768"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8778:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8778:9:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8789:4:40",
+ "nodeType": "YulLiteral",
+ "src": "8789:4:40",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "8730:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "8730:10:40"
+ },
+ "nativeSrc": "8730:64:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8730:64:40"
+ },
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "8719:7:40",
+ "nodeType": "YulTypedName",
+ "src": "8719:7:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8812:38:40",
+ "nodeType": "YulAssignment",
+ "src": "8812:38:40",
+ "value": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "8824:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "8824:7:40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8839:9:40",
+ "nodeType": "YulIdentifier",
+ "src": "8839:9:40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8833:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "8833:5:40"
+ },
+ "nativeSrc": "8833:16:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8833:16:40"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8820:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8820:3:40"
+ },
+ "nativeSrc": "8820:30:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8820:30:40"
+ },
+ "variableNames": [
+ {
+ "name": "isOk",
+ "nativeSrc": "8812:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "8812:4:40"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checkPairing",
+ "nativeSrc": "5984:2880:40",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pA",
+ "nativeSrc": "6006:2:40",
+ "nodeType": "YulTypedName",
+ "src": "6006:2:40",
+ "type": ""
+ },
+ {
+ "name": "pB",
+ "nativeSrc": "6010:2:40",
+ "nodeType": "YulTypedName",
+ "src": "6010:2:40",
+ "type": ""
+ },
+ {
+ "name": "pC",
+ "nativeSrc": "6014:2:40",
+ "nodeType": "YulTypedName",
+ "src": "6014:2:40",
+ "type": ""
+ },
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6018:10:40",
+ "nodeType": "YulTypedName",
+ "src": "6018:10:40",
+ "type": ""
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "6030:4:40",
+ "nodeType": "YulTypedName",
+ "src": "6030:4:40",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "isOk",
+ "nativeSrc": "6039:4:40",
+ "nodeType": "YulTypedName",
+ "src": "6039:4:40",
+ "type": ""
+ }
+ ],
+ "src": "5984:2880:40"
+ },
+ {
+ "nativeSrc": "8878:23:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8878:23:40",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8896:4:40",
+ "nodeType": "YulLiteral",
+ "src": "8896:4:40",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8890:5:40",
+ "nodeType": "YulIdentifier",
+ "src": "8890:5:40"
+ },
+ "nativeSrc": "8890:11:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8890:11:40"
+ },
+ "variables": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8882:4:40",
+ "nodeType": "YulTypedName",
+ "src": "8882:4:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8921:4:40",
+ "nodeType": "YulLiteral",
+ "src": "8921:4:40",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8931:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "8931:4:40"
+ },
+ {
+ "name": "pLastMem",
+ "nativeSrc": "8937:8:40",
+ "nodeType": "YulIdentifier",
+ "src": "8937:8:40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8927:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "8927:3:40"
+ },
+ "nativeSrc": "8927:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8927:19:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8914:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "8914:6:40"
+ },
+ "nativeSrc": "8914:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "8914:33:40"
+ },
+ "nativeSrc": "8914:33:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "8914:33:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9053:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9053:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9066:1:40",
+ "nodeType": "YulLiteral",
+ "src": "9066:1:40",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9049:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9049:3:40"
+ },
+ "nativeSrc": "9049:19:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9049:19:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9036:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9036:12:40"
+ },
+ "nativeSrc": "9036:33:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9036:33:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9025:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9025:10:40"
+ },
+ "nativeSrc": "9025:45:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9025:45:40"
+ },
+ "nativeSrc": "9025:45:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9025:45:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9124:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9124:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9137:2:40",
+ "nodeType": "YulLiteral",
+ "src": "9137:2:40",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9120:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9120:3:40"
+ },
+ "nativeSrc": "9120:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9120:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9107:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9107:12:40"
+ },
+ "nativeSrc": "9107:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9107:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9096:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9096:10:40"
+ },
+ "nativeSrc": "9096:46:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9096:46:40"
+ },
+ "nativeSrc": "9096:46:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9096:46:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9196:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9196:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9209:2:40",
+ "nodeType": "YulLiteral",
+ "src": "9209:2:40",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9192:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9192:3:40"
+ },
+ "nativeSrc": "9192:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9192:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9179:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9179:12:40"
+ },
+ "nativeSrc": "9179:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9179:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9168:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9168:10:40"
+ },
+ "nativeSrc": "9168:46:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9168:46:40"
+ },
+ "nativeSrc": "9168:46:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9168:46:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9268:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9268:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9281:2:40",
+ "nodeType": "YulLiteral",
+ "src": "9281:2:40",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9264:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9264:3:40"
+ },
+ "nativeSrc": "9264:20:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9264:20:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9251:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9251:12:40"
+ },
+ "nativeSrc": "9251:34:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9251:34:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9240:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9240:10:40"
+ },
+ "nativeSrc": "9240:46:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9240:46:40"
+ },
+ "nativeSrc": "9240:46:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9240:46:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9340:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9340:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9353:3:40",
+ "nodeType": "YulLiteral",
+ "src": "9353:3:40",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9336:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9336:3:40"
+ },
+ "nativeSrc": "9336:21:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9336:21:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9323:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9323:12:40"
+ },
+ "nativeSrc": "9323:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9323:35:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9312:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9312:10:40"
+ },
+ "nativeSrc": "9312:47:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9312:47:40"
+ },
+ "nativeSrc": "9312:47:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9312:47:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9413:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9413:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9426:3:40",
+ "nodeType": "YulLiteral",
+ "src": "9426:3:40",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9409:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9409:3:40"
+ },
+ "nativeSrc": "9409:21:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9409:21:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9396:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9396:12:40"
+ },
+ "nativeSrc": "9396:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9396:35:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9385:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9385:10:40"
+ },
+ "nativeSrc": "9385:47:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9385:47:40"
+ },
+ "nativeSrc": "9385:47:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9385:47:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9486:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9486:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9499:3:40",
+ "nodeType": "YulLiteral",
+ "src": "9499:3:40",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9482:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9482:3:40"
+ },
+ "nativeSrc": "9482:21:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9482:21:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9469:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9469:12:40"
+ },
+ "nativeSrc": "9469:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9469:35:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9458:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9458:10:40"
+ },
+ "nativeSrc": "9458:47:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9458:47:40"
+ },
+ "nativeSrc": "9458:47:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9458:47:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9559:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9559:11:40"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9572:3:40",
+ "nodeType": "YulLiteral",
+ "src": "9572:3:40",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9555:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9555:3:40"
+ },
+ "nativeSrc": "9555:21:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9555:21:40"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9542:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9542:12:40"
+ },
+ "nativeSrc": "9542:35:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9542:35:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9531:10:40",
+ "nodeType": "YulIdentifier",
+ "src": "9531:10:40"
+ },
+ "nativeSrc": "9531:47:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9531:47:40"
+ },
+ "nativeSrc": "9531:47:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9531:47:40"
+ },
+ {
+ "nativeSrc": "9645:61:40",
+ "nodeType": "YulVariableDeclaration",
+ "src": "9645:61:40",
+ "value": {
+ "arguments": [
+ {
+ "name": "_pA",
+ "nativeSrc": "9673:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9673:3:40"
+ },
+ {
+ "name": "_pB",
+ "nativeSrc": "9678:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9678:3:40"
+ },
+ {
+ "name": "_pC",
+ "nativeSrc": "9683:3:40",
+ "nodeType": "YulIdentifier",
+ "src": "9683:3:40"
+ },
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9688:11:40",
+ "nodeType": "YulIdentifier",
+ "src": "9688:11:40"
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "9701:4:40",
+ "nodeType": "YulIdentifier",
+ "src": "9701:4:40"
+ }
+ ],
+ "functionName": {
+ "name": "checkPairing",
+ "nativeSrc": "9660:12:40",
+ "nodeType": "YulIdentifier",
+ "src": "9660:12:40"
+ },
+ "nativeSrc": "9660:46:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9660:46:40"
+ },
+ "variables": [
+ {
+ "name": "isValid",
+ "nativeSrc": "9649:7:40",
+ "nodeType": "YulTypedName",
+ "src": "9649:7:40",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9727:1:40",
+ "nodeType": "YulLiteral",
+ "src": "9727:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "isValid",
+ "nativeSrc": "9730:7:40",
+ "nodeType": "YulIdentifier",
+ "src": "9730:7:40"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "9720:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "9720:6:40"
+ },
+ "nativeSrc": "9720:18:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9720:18:40"
+ },
+ "nativeSrc": "9720:18:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9720:18:40"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9759:1:40",
+ "nodeType": "YulLiteral",
+ "src": "9759:1:40",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9762:4:40",
+ "nodeType": "YulLiteral",
+ "src": "9762:4:40",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "9752:6:40",
+ "nodeType": "YulIdentifier",
+ "src": "9752:6:40"
+ },
+ "nativeSrc": "9752:15:40",
+ "nodeType": "YulFunctionCall",
+ "src": "9752:15:40"
+ },
+ "nativeSrc": "9752:15:40",
+ "nodeType": "YulExpressionStatement",
+ "src": "9752:15:40"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 17593,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6172:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17596,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6216:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17599,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6328:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17602,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6334:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17605,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6424:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17608,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6430:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17611,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6521:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17614,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6527:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17617,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6618:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17620,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6624:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17623,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6715:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17626,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6721:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17629,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6813:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17632,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6819:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17635,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6911:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17638,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6917:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17641,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7009:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17644,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7015:4:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17657,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9673:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17663,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9678:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17667,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9683:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9053:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9124:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9196:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9268:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9340:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9413:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9486:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9559:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17671,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9688:11:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17551,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7601:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17554,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7653:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17557,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7731:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17560,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7783:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17563,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7835:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17566,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7887:6:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17581,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8529:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17584,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8582:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17587,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8635:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17590,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8688:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17569,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8135:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17572,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8188:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17575,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8241:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17578,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8294:7:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17653,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8937:8:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17650,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6089:8:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17647,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6137:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17647,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7980:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17647,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8051:3:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17548,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7200:1:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17548,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7231:1:40",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17545,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5022:1:40",
+ "valueSize": 1
+ }
+ ],
+ "id": 17676,
+ "nodeType": "InlineAssembly",
+ "src": "4942:4836:40"
+ }
+ ]
+ },
+ "functionSelector": "c9219a7a",
+ "id": 17678,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "4794:11:40",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17672,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17657,
+ "mutability": "mutable",
+ "name": "_pA",
+ "nameLocation": "4823:3:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17678,
+ "src": "4806:20:40",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17654,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4806:4:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17656,
+ "length": {
+ "hexValue": "32",
+ "id": 17655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4811:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4806:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17663,
+ "mutability": "mutable",
+ "name": "_pB",
+ "nameLocation": "4848:3:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17678,
+ "src": "4828:23:40",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 17658,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4828:4:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17660,
+ "length": {
+ "hexValue": "32",
+ "id": 17659,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4833:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4828:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 17662,
+ "length": {
+ "hexValue": "32",
+ "id": 17661,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4836:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4828:10:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17667,
+ "mutability": "mutable",
+ "name": "_pC",
+ "nameLocation": "4870:3:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17678,
+ "src": "4853:20:40",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17664,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4853:4:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17666,
+ "length": {
+ "hexValue": "32",
+ "id": 17665,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4858:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4853:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17671,
+ "mutability": "mutable",
+ "name": "_pubSignals",
+ "nameLocation": "4892:11:40",
+ "nodeType": "VariableDeclaration",
+ "scope": 17678,
+ "src": "4875:28:40",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17668,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4875:4:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17670,
+ "length": {
+ "hexValue": "38",
+ "id": 17669,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4880:1:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4875:7:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4805:99:40"
+ },
+ "returnParameters": {
+ "id": 17675,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17674,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17678,
+ "src": "4926:4:40",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 17673,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4926:4:40",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4925:6:40"
+ },
+ "scope": 17679,
+ "src": "4785:5000:40",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 17680,
+ "src": "831:8957:40",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "798:8991:40"
+ },
+ "id": 40
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha224.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha224.sol",
+ "exportedSymbols": {
+ "Verifier_idcard_sha224": [
+ 17818
+ ]
+ },
+ "id": 17819,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 17681,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "798:31:41"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Verifier_idcard_sha224",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 17818,
+ "linearizedBaseContracts": [
+ 17818
+ ],
+ "name": "Verifier_idcard_sha224",
+ "nameLocation": "840:22:41",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 17684,
+ "mutability": "constant",
+ "name": "r",
+ "nameLocation": "911:1:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "894:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17682,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137",
+ "id": 17683,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "918:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...5617"
+ },
+ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17687,
+ "mutability": "constant",
+ "name": "q",
+ "nameLocation": "1041:1:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1024:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17685,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1024:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833",
+ "id": 17686,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1047:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...8583"
+ },
+ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17690,
+ "mutability": "constant",
+ "name": "alphax",
+ "nameLocation": "1177:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1160:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17688,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1160:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432",
+ "id": 17689,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1187:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1",
+ "typeString": "int_const 2049...(69 digits omitted)...3042"
+ },
+ "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17693,
+ "mutability": "constant",
+ "name": "alphay",
+ "nameLocation": "1287:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1270:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17691,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1270:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538",
+ "id": 17692,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1297:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1",
+ "typeString": "int_const 9383...(68 digits omitted)...5958"
+ },
+ "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17696,
+ "mutability": "constant",
+ "name": "betax1",
+ "nameLocation": "1396:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1379:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17694,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1379:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332",
+ "id": 17695,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1406:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1",
+ "typeString": "int_const 4252...(68 digits omitted)...7132"
+ },
+ "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17699,
+ "mutability": "constant",
+ "name": "betax2",
+ "nameLocation": "1505:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1488:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17697,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1488:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331",
+ "id": 17698,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1515:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1",
+ "typeString": "int_const 6375...(68 digits omitted)...8731"
+ },
+ "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17702,
+ "mutability": "constant",
+ "name": "betay1",
+ "nameLocation": "1614:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1597:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17700,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1597:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739",
+ "id": 17701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1624:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1",
+ "typeString": "int_const 2184...(69 digits omitted)...6679"
+ },
+ "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17705,
+ "mutability": "constant",
+ "name": "betay2",
+ "nameLocation": "1724:6:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1707:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1707:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536",
+ "id": 17704,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1734:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1",
+ "typeString": "int_const 1050...(69 digits omitted)...6856"
+ },
+ "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17708,
+ "mutability": "constant",
+ "name": "gammax1",
+ "nameLocation": "1834:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1817:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17706,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1817:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334",
+ "id": 17707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1844:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1",
+ "typeString": "int_const 1155...(69 digits omitted)...5634"
+ },
+ "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17711,
+ "mutability": "constant",
+ "name": "gammax2",
+ "nameLocation": "1944:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "1927:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17709,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1927:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831",
+ "id": 17710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1954:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1",
+ "typeString": "int_const 1085...(69 digits omitted)...2781"
+ },
+ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17714,
+ "mutability": "constant",
+ "name": "gammay1",
+ "nameLocation": "2054:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2037:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17712,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2037:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331",
+ "id": 17713,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2064:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1",
+ "typeString": "int_const 4082...(68 digits omitted)...3531"
+ },
+ "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17717,
+ "mutability": "constant",
+ "name": "gammay2",
+ "nameLocation": "2163:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2146:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17715,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2146:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330",
+ "id": 17716,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2173:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1",
+ "typeString": "int_const 8495...(68 digits omitted)...1930"
+ },
+ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17720,
+ "mutability": "constant",
+ "name": "deltax1",
+ "nameLocation": "2272:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2255:104:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17718,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2255:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353238363736343531373639343739383933383930353836303136373335313337393138373338343638333235333733383036373931313632383034373232333335353430303931363837",
+ "id": 17719,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2282:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11528676451769479893890586016735137918738468325373806791162804722335540091687_by_1",
+ "typeString": "int_const 1152...(69 digits omitted)...1687"
+ },
+ "value": "11528676451769479893890586016735137918738468325373806791162804722335540091687"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17723,
+ "mutability": "constant",
+ "name": "deltax2",
+ "nameLocation": "2382:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2365:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17721,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2365:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31363639383337323937313134343939373838333237323938353831303430373637383338353631343530313237363132393830353136343035363237393131393436343035343632353334",
+ "id": 17722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2392:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1669837297114499788327298581040767838561450127612980516405627911946405462534_by_1",
+ "typeString": "int_const 1669...(68 digits omitted)...2534"
+ },
+ "value": "1669837297114499788327298581040767838561450127612980516405627911946405462534"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17726,
+ "mutability": "constant",
+ "name": "deltay1",
+ "nameLocation": "2491:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2474:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17724,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2474:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36393431353539393938343039323932303239363433303631363932383639313131363932393632393732393833363339343637373038313635353739323032303537303636333535333933",
+ "id": 17725,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2501:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6941559998409292029643061692869111692962972983639467708165579202057066355393_by_1",
+ "typeString": "int_const 6941...(68 digits omitted)...5393"
+ },
+ "value": "6941559998409292029643061692869111692962972983639467708165579202057066355393"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17729,
+ "mutability": "constant",
+ "name": "deltay2",
+ "nameLocation": "2600:7:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2583:103:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17727,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2583:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35383330343236333838313439313731313932323337343137343236313233363238333837303535383537373334333132323238313339393233303331363835393632373830313538363833",
+ "id": 17728,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2610:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5830426388149171192237417426123628387055857734312228139923031685962780158683_by_1",
+ "typeString": "int_const 5830...(68 digits omitted)...8683"
+ },
+ "value": "5830426388149171192237417426123628387055857734312228139923031685962780158683"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17732,
+ "mutability": "constant",
+ "name": "IC0x",
+ "nameLocation": "2715:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2698:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17730,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2698:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37393536353439303634373330393036313131333737323430303331313433313432333430333635303431333232333838363737383834333335383734313738383737363836373837373634",
+ "id": 17731,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2722:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7956549064730906111377240031143142340365041322388677884335874178877686787764_by_1",
+ "typeString": "int_const 7956...(68 digits omitted)...7764"
+ },
+ "value": "7956549064730906111377240031143142340365041322388677884335874178877686787764"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17735,
+ "mutability": "constant",
+ "name": "IC0y",
+ "nameLocation": "2821:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2804:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17733,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2804:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231373930373234343338313534333835323032303530323130393739333632363931383432363031303537333636353137373935393937373235383139323231363931303636373131373535",
+ "id": 17734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2828:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21790724438154385202050210979362691842601057366517795997725819221691066711755_by_1",
+ "typeString": "int_const 2179...(69 digits omitted)...1755"
+ },
+ "value": "21790724438154385202050210979362691842601057366517795997725819221691066711755"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17738,
+ "mutability": "constant",
+ "name": "IC1x",
+ "nameLocation": "2933:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "2916:99:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17736,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2916:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "313934343936373335323539353330323939373438343036323235393631313434383733363735303635373434313832323931333134373733333738313535373332363630363234373835",
+ "id": 17737,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2940:75:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_194496735259530299748406225961144873675065744182291314773378155732660624785_by_1",
+ "typeString": "int_const 1944...(67 digits omitted)...4785"
+ },
+ "value": "194496735259530299748406225961144873675065744182291314773378155732660624785"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17741,
+ "mutability": "constant",
+ "name": "IC1y",
+ "nameLocation": "3038:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3021:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17739,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3021:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131393937353230333234363238333331313339373538343937373335313532393032353634313930383934373635393232363236383534343235353331393337303039343432303535393933",
+ "id": 17740,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3045:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11997520324628331139758497735152902564190894765922626854425531937009442055993_by_1",
+ "typeString": "int_const 1199...(69 digits omitted)...5993"
+ },
+ "value": "11997520324628331139758497735152902564190894765922626854425531937009442055993"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17744,
+ "mutability": "constant",
+ "name": "IC2x",
+ "nameLocation": "3150:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3133:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17742,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3133:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230373135363539383939323036333633303039393539303031333532313532373036393338333135303331383739303934363538333133373630373239393232353539383636303732363837",
+ "id": 17743,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3157:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20715659899206363009959001352152706938315031879094658313760729922559866072687_by_1",
+ "typeString": "int_const 2071...(69 digits omitted)...2687"
+ },
+ "value": "20715659899206363009959001352152706938315031879094658313760729922559866072687"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17747,
+ "mutability": "constant",
+ "name": "IC2y",
+ "nameLocation": "3257:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3240:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17745,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3240:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37323036393331333839363534383834373539353530363939383535383932313339353336303139323930383234303839303733303636363634383236303734303036363731323338313330",
+ "id": 17746,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3264:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7206931389654884759550699855892139536019290824089073066664826074006671238130_by_1",
+ "typeString": "int_const 7206...(68 digits omitted)...8130"
+ },
+ "value": "7206931389654884759550699855892139536019290824089073066664826074006671238130"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17750,
+ "mutability": "constant",
+ "name": "IC3x",
+ "nameLocation": "3368:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3351:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17748,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3351:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3135363437363030303231353038363039363131333836343636313839303039313035383135333635333832333438303235313530373435393030353536323533323037343438313034343136",
+ "id": 17749,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3375:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15647600021508609611386466189009105815365382348025150745900556253207448104416_by_1",
+ "typeString": "int_const 1564...(69 digits omitted)...4416"
+ },
+ "value": "15647600021508609611386466189009105815365382348025150745900556253207448104416"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17753,
+ "mutability": "constant",
+ "name": "IC3y",
+ "nameLocation": "3475:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3458:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17751,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3458:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231353035383636373739313339373336333739363033353438383230313731393533323034393034303731373734363131353832333031383732363636313433373439363634323233373832",
+ "id": 17752,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3482:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21505866779139736379603548820171953204904071774611582301872666143749664223782_by_1",
+ "typeString": "int_const 2150...(69 digits omitted)...3782"
+ },
+ "value": "21505866779139736379603548820171953204904071774611582301872666143749664223782"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17756,
+ "mutability": "constant",
+ "name": "IC4x",
+ "nameLocation": "3587:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3570:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17754,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3570:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230373535333635313139353339373933323834333938333639383039313833373134373734373138323734313239373138383836303038383430393339323530373039333638303536343433",
+ "id": 17755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3594:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20755365119539793284398369809183714774718274129718886008840939250709368056443_by_1",
+ "typeString": "int_const 2075...(69 digits omitted)...6443"
+ },
+ "value": "20755365119539793284398369809183714774718274129718886008840939250709368056443"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17759,
+ "mutability": "constant",
+ "name": "IC4y",
+ "nameLocation": "3694:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3677:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17757,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3677:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31353134303936303939393039393638393932393938333939363439353930323932393032373433323436313136373539383637303134303831393032383237313333363037373430303331",
+ "id": 17758,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3701:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1514096099909968992998399649590292902743246116759867014081902827133607740031_by_1",
+ "typeString": "int_const 1514...(68 digits omitted)...0031"
+ },
+ "value": "1514096099909968992998399649590292902743246116759867014081902827133607740031"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17762,
+ "mutability": "constant",
+ "name": "IC5x",
+ "nameLocation": "3805:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3788:99:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17760,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3788:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "353436353033353637333430363136353033343837363237323632383132373338343832333433393732313135383039393130353131363335313337353439313435373834353233303739",
+ "id": 17761,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3812:75:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_546503567340616503487627262812738482343972115809910511635137549145784523079_by_1",
+ "typeString": "int_const 5465...(67 digits omitted)...3079"
+ },
+ "value": "546503567340616503487627262812738482343972115809910511635137549145784523079"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17765,
+ "mutability": "constant",
+ "name": "IC5y",
+ "nameLocation": "3910:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "3893:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17763,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3893:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139363432393333343536373238333436323339373135343132333935353236373337373939343037303836333639333731383336313339303330343436343130333133393831313237313433",
+ "id": 17764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3917:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19642933456728346239715412395526737799407086369371836139030446410313981127143_by_1",
+ "typeString": "int_const 1964...(69 digits omitted)...7143"
+ },
+ "value": "19642933456728346239715412395526737799407086369371836139030446410313981127143"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17768,
+ "mutability": "constant",
+ "name": "IC6x",
+ "nameLocation": "4022:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4005:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17766,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4005:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38363535333837353534303432353838343739373634383431343231313133343631393034363438333339393437353739353934383838323332333133343831353430313430323130363035",
+ "id": 17767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4029:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8655387554042588479764841421113461904648339947579594888232313481540140210605_by_1",
+ "typeString": "int_const 8655...(68 digits omitted)...0605"
+ },
+ "value": "8655387554042588479764841421113461904648339947579594888232313481540140210605"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17771,
+ "mutability": "constant",
+ "name": "IC6y",
+ "nameLocation": "4128:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4111:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17769,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4111:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36313934353832393632363037393833333739363430313137363830313531333836303034303832333739373032323736363433323532333039353632373536333932363339373935303336",
+ "id": 17770,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4135:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6194582962607983379640117680151386004082379702276643252309562756392639795036_by_1",
+ "typeString": "int_const 6194...(68 digits omitted)...5036"
+ },
+ "value": "6194582962607983379640117680151386004082379702276643252309562756392639795036"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17774,
+ "mutability": "constant",
+ "name": "IC7x",
+ "nameLocation": "4239:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4222:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17772,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4222:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139393938393537373732333634353230303439323136303330363433343233353339383436313734383034393539343933303731383337313536323334353630313134303533333732303435",
+ "id": 17773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4246:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19998957772364520049216030643423539846174804959493071837156234560114053372045_by_1",
+ "typeString": "int_const 1999...(69 digits omitted)...2045"
+ },
+ "value": "19998957772364520049216030643423539846174804959493071837156234560114053372045"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17777,
+ "mutability": "constant",
+ "name": "IC7y",
+ "nameLocation": "4346:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4329:100:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17775,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4329:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37383736303636323133313838333539393836323637373835373036323734353034303031343630313735373036373435383238353333383930353730303031353030363732343133373232",
+ "id": 17776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4353:76:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7876066213188359986267785706274504001460175706745828533890570001500672413722_by_1",
+ "typeString": "int_const 7876...(68 digits omitted)...3722"
+ },
+ "value": "7876066213188359986267785706274504001460175706745828533890570001500672413722"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17780,
+ "mutability": "constant",
+ "name": "IC8x",
+ "nameLocation": "4457:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4440:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17778,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4440:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3137393139363436343239303339373731363834383536393830353530303236303630383230313337373234353533323031313433303339333136313537353130383231363831333334393539",
+ "id": 17779,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4464:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17919646429039771684856980550026060820137724553201143039316157510821681334959_by_1",
+ "typeString": "int_const 1791...(69 digits omitted)...4959"
+ },
+ "value": "17919646429039771684856980550026060820137724553201143039316157510821681334959"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17783,
+ "mutability": "constant",
+ "name": "IC8y",
+ "nameLocation": "4564:4:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4547:101:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17781,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4547:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132323532373434333639323737353732313431363139353431353938393538343038393230313835313539363430323831363736313638373238313039303236313133343631343234393433",
+ "id": 17782,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4571:77:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12252744369277572141619541598958408920185159640281676168728109026113461424943_by_1",
+ "typeString": "int_const 1225...(69 digits omitted)...4943"
+ },
+ "value": "12252744369277572141619541598958408920185159640281676168728109026113461424943"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17786,
+ "mutability": "constant",
+ "name": "pVk",
+ "nameLocation": "4696:3:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4680:23:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17784,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4680:6:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 17785,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4702:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17789,
+ "mutability": "constant",
+ "name": "pPairing",
+ "nameLocation": "4725:8:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4709:30:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17787,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4709:6:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "313238",
+ "id": 17788,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4736:3:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17792,
+ "mutability": "constant",
+ "name": "pLastMem",
+ "nameLocation": "4762:8:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17818,
+ "src": "4746:30:41",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17790,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4746:6:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "383936",
+ "id": 17791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4773:3:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_896_by_1",
+ "typeString": "int_const 896"
+ },
+ "value": "896"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17816,
+ "nodeType": "Block",
+ "src": "4930:4853:41",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4949:4827:41",
+ "nodeType": "YulBlock",
+ "src": "4949:4827:41",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4986:140:41",
+ "nodeType": "YulBlock",
+ "src": "4986:140:41",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5024:88:41",
+ "nodeType": "YulBlock",
+ "src": "5024:88:41",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5053:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5053:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5056:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5056:1:41",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5046:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5046:6:41"
+ },
+ "nativeSrc": "5046:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5046:12:41"
+ },
+ "nativeSrc": "5046:12:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5046:12:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5086:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5086:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5089:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5089:4:41",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5079:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5079:6:41"
+ },
+ "nativeSrc": "5079:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5079:15:41"
+ },
+ "nativeSrc": "5079:15:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5079:15:41"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "v",
+ "nativeSrc": "5017:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "5017:1:41"
+ },
+ {
+ "name": "r",
+ "nativeSrc": "5020:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "5020:1:41"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5014:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "5014:2:41"
+ },
+ "nativeSrc": "5014:8:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5014:8:41"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5007:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5007:6:41"
+ },
+ "nativeSrc": "5007:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5007:16:41"
+ },
+ "nativeSrc": "5004:108:41",
+ "nodeType": "YulIf",
+ "src": "5004:108:41"
+ }
+ ]
+ },
+ "name": "checkField",
+ "nativeSrc": "4963:163:41",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "v",
+ "nativeSrc": "4983:1:41",
+ "nodeType": "YulTypedName",
+ "src": "4983:1:41",
+ "type": ""
+ }
+ ],
+ "src": "4963:163:41"
+ },
+ {
+ "body": {
+ "nativeSrc": "5263:705:41",
+ "nodeType": "YulBlock",
+ "src": "5263:705:41",
+ "statements": [
+ {
+ "nativeSrc": "5281:11:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5281:11:41",
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "5285:7:41",
+ "nodeType": "YulTypedName",
+ "src": "5285:7:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5309:22:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5309:22:41",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5326:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5326:4:41",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5320:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "5320:5:41"
+ },
+ "nativeSrc": "5320:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5320:11:41"
+ },
+ "variables": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5313:3:41",
+ "nodeType": "YulTypedName",
+ "src": "5313:3:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5355:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5355:3:41"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5360:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "5360:1:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5348:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5348:6:41"
+ },
+ "nativeSrc": "5348:14:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5348:14:41"
+ },
+ "nativeSrc": "5348:14:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5348:14:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5390:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5390:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5395:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5395:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5386:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5386:3:41"
+ },
+ "nativeSrc": "5386:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5386:12:41"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5400:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "5400:1:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5379:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5379:6:41"
+ },
+ "nativeSrc": "5379:23:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5379:23:41"
+ },
+ "nativeSrc": "5379:23:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5379:23:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5430:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5430:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5435:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5435:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5426:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5426:3:41"
+ },
+ "nativeSrc": "5426:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5426:12:41"
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5440:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "5440:1:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5419:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5419:6:41"
+ },
+ "nativeSrc": "5419:23:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5419:23:41"
+ },
+ "nativeSrc": "5419:23:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5419:23:41"
+ },
+ {
+ "nativeSrc": "5460:60:41",
+ "nodeType": "YulAssignment",
+ "src": "5460:60:41",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5486:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5486:3:41"
+ },
+ "nativeSrc": "5486:5:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5486:5:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5493:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5493:4:41",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5482:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5482:3:41"
+ },
+ "nativeSrc": "5482:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5482:16:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5500:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5500:1:41",
+ "type": "",
+ "value": "7"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5503:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5503:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5508:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5508:2:41",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5512:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5512:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5517:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5517:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5471:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "5471:10:41"
+ },
+ "nativeSrc": "5471:49:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5471:49:41"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5460:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "5460:7:41"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5557:88:41",
+ "nodeType": "YulBlock",
+ "src": "5557:88:41",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5586:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5586:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5589:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5589:1:41",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5579:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5579:6:41"
+ },
+ "nativeSrc": "5579:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5579:12:41"
+ },
+ "nativeSrc": "5579:12:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5579:12:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5619:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5619:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5622:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5622:4:41",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5612:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5612:6:41"
+ },
+ "nativeSrc": "5612:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5612:15:41"
+ },
+ "nativeSrc": "5612:15:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5612:15:41"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5548:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "5548:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5541:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5541:6:41"
+ },
+ "nativeSrc": "5541:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5541:15:41"
+ },
+ "nativeSrc": "5538:107:41",
+ "nodeType": "YulIf",
+ "src": "5538:107:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5674:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5674:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5679:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5679:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5670:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5670:3:41"
+ },
+ "nativeSrc": "5670:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5670:12:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5690:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "5690:2:41"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5684:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "5684:5:41"
+ },
+ "nativeSrc": "5684:9:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5684:9:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5663:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5663:6:41"
+ },
+ "nativeSrc": "5663:31:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5663:31:41"
+ },
+ "nativeSrc": "5663:31:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5663:31:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5722:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5722:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5727:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5727:2:41",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5718:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5718:3:41"
+ },
+ "nativeSrc": "5718:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5718:12:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5742:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "5742:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5746:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5746:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5738:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5738:3:41"
+ },
+ "nativeSrc": "5738:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5738:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5732:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "5732:5:41"
+ },
+ "nativeSrc": "5732:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5732:18:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5711:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5711:6:41"
+ },
+ "nativeSrc": "5711:40:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5711:40:41"
+ },
+ "nativeSrc": "5711:40:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5711:40:41"
+ },
+ {
+ "nativeSrc": "5769:60:41",
+ "nodeType": "YulAssignment",
+ "src": "5769:60:41",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5795:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5795:3:41"
+ },
+ "nativeSrc": "5795:5:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5795:5:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5802:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5802:4:41",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5791:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5791:3:41"
+ },
+ "nativeSrc": "5791:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5791:16:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5809:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5809:1:41",
+ "type": "",
+ "value": "6"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5812:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "5812:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5817:3:41",
+ "nodeType": "YulLiteral",
+ "src": "5817:3:41",
+ "type": "",
+ "value": "128"
+ },
+ {
+ "name": "pR",
+ "nativeSrc": "5822:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "5822:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5826:2:41",
+ "nodeType": "YulLiteral",
+ "src": "5826:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5780:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "5780:10:41"
+ },
+ "nativeSrc": "5780:49:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5780:49:41"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5769:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "5769:7:41"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5866:88:41",
+ "nodeType": "YulBlock",
+ "src": "5866:88:41",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5895:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5895:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5898:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5898:1:41",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5888:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5888:6:41"
+ },
+ "nativeSrc": "5888:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5888:12:41"
+ },
+ "nativeSrc": "5888:12:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5888:12:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5928:1:41",
+ "nodeType": "YulLiteral",
+ "src": "5928:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5931:4:41",
+ "nodeType": "YulLiteral",
+ "src": "5931:4:41",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5921:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5921:6:41"
+ },
+ "nativeSrc": "5921:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5921:15:41"
+ },
+ "nativeSrc": "5921:15:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "5921:15:41"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5857:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "5857:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5850:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "5850:6:41"
+ },
+ "nativeSrc": "5850:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "5850:15:41"
+ },
+ "nativeSrc": "5847:107:41",
+ "nodeType": "YulIf",
+ "src": "5847:107:41"
+ }
+ ]
+ },
+ "name": "g1_mulAccC",
+ "nativeSrc": "5230:738:41",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pR",
+ "nativeSrc": "5250:2:41",
+ "nodeType": "YulTypedName",
+ "src": "5250:2:41",
+ "type": ""
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5254:1:41",
+ "nodeType": "YulTypedName",
+ "src": "5254:1:41",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5257:1:41",
+ "nodeType": "YulTypedName",
+ "src": "5257:1:41",
+ "type": ""
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5260:1:41",
+ "nodeType": "YulTypedName",
+ "src": "5260:1:41",
+ "type": ""
+ }
+ ],
+ "src": "5230:738:41"
+ },
+ {
+ "body": {
+ "nativeSrc": "6042:2820:41",
+ "nodeType": "YulBlock",
+ "src": "6042:2820:41",
+ "statements": [
+ {
+ "nativeSrc": "6060:36:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6060:36:41",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6081:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6081:4:41"
+ },
+ {
+ "name": "pPairing",
+ "nativeSrc": "6087:8:41",
+ "nodeType": "YulIdentifier",
+ "src": "6087:8:41"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6077:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6077:3:41"
+ },
+ "nativeSrc": "6077:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6077:19:41"
+ },
+ "variables": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "6064:9:41",
+ "nodeType": "YulTypedName",
+ "src": "6064:9:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6113:26:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6113:26:41",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6129:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6129:4:41"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "6135:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6135:3:41"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6125:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6125:3:41"
+ },
+ "nativeSrc": "6125:14:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6125:14:41"
+ },
+ "variables": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6117:4:41",
+ "nodeType": "YulTypedName",
+ "src": "6117:4:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6164:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6164:4:41"
+ },
+ {
+ "name": "IC0x",
+ "nativeSrc": "6170:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6170:4:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6157:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "6157:6:41"
+ },
+ "nativeSrc": "6157:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6157:18:41"
+ },
+ "nativeSrc": "6157:18:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6157:18:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6203:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6203:4:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6209:2:41",
+ "nodeType": "YulLiteral",
+ "src": "6209:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6199:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6199:3:41"
+ },
+ "nativeSrc": "6199:13:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6199:13:41"
+ },
+ {
+ "name": "IC0y",
+ "nativeSrc": "6214:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6214:4:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6192:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "6192:6:41"
+ },
+ "nativeSrc": "6192:27:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6192:27:41"
+ },
+ "nativeSrc": "6192:27:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6192:27:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6320:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6320:4:41"
+ },
+ {
+ "name": "IC1x",
+ "nativeSrc": "6326:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6326:4:41"
+ },
+ {
+ "name": "IC1y",
+ "nativeSrc": "6332:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6332:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6355:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6355:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6367:1:41",
+ "nodeType": "YulLiteral",
+ "src": "6367:1:41",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6351:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6351:3:41"
+ },
+ "nativeSrc": "6351:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6351:18:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6338:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6338:12:41"
+ },
+ "nativeSrc": "6338:32:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6338:32:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6309:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6309:10:41"
+ },
+ "nativeSrc": "6309:62:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6309:62:41"
+ },
+ "nativeSrc": "6309:62:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6309:62:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6416:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6416:4:41"
+ },
+ {
+ "name": "IC2x",
+ "nativeSrc": "6422:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6422:4:41"
+ },
+ {
+ "name": "IC2y",
+ "nativeSrc": "6428:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6428:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6451:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6451:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6463:2:41",
+ "nodeType": "YulLiteral",
+ "src": "6463:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6447:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6447:3:41"
+ },
+ "nativeSrc": "6447:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6447:19:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6434:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6434:12:41"
+ },
+ "nativeSrc": "6434:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6434:33:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6405:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6405:10:41"
+ },
+ "nativeSrc": "6405:63:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6405:63:41"
+ },
+ "nativeSrc": "6405:63:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6405:63:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6513:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6513:4:41"
+ },
+ {
+ "name": "IC3x",
+ "nativeSrc": "6519:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6519:4:41"
+ },
+ {
+ "name": "IC3y",
+ "nativeSrc": "6525:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6525:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6548:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6548:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6560:2:41",
+ "nodeType": "YulLiteral",
+ "src": "6560:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6544:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6544:3:41"
+ },
+ "nativeSrc": "6544:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6544:19:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6531:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6531:12:41"
+ },
+ "nativeSrc": "6531:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6531:33:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6502:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6502:10:41"
+ },
+ "nativeSrc": "6502:63:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6502:63:41"
+ },
+ "nativeSrc": "6502:63:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6502:63:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6610:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6610:4:41"
+ },
+ {
+ "name": "IC4x",
+ "nativeSrc": "6616:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6616:4:41"
+ },
+ {
+ "name": "IC4y",
+ "nativeSrc": "6622:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6622:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6645:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6645:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6657:2:41",
+ "nodeType": "YulLiteral",
+ "src": "6657:2:41",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6641:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6641:3:41"
+ },
+ "nativeSrc": "6641:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6641:19:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6628:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6628:12:41"
+ },
+ "nativeSrc": "6628:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6628:33:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6599:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6599:10:41"
+ },
+ "nativeSrc": "6599:63:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6599:63:41"
+ },
+ "nativeSrc": "6599:63:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6599:63:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6707:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6707:4:41"
+ },
+ {
+ "name": "IC5x",
+ "nativeSrc": "6713:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6713:4:41"
+ },
+ {
+ "name": "IC5y",
+ "nativeSrc": "6719:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6719:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6742:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6742:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6754:3:41",
+ "nodeType": "YulLiteral",
+ "src": "6754:3:41",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6738:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6738:3:41"
+ },
+ "nativeSrc": "6738:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6738:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6725:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6725:12:41"
+ },
+ "nativeSrc": "6725:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6725:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6696:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6696:10:41"
+ },
+ "nativeSrc": "6696:64:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6696:64:41"
+ },
+ "nativeSrc": "6696:64:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6696:64:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6805:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6805:4:41"
+ },
+ {
+ "name": "IC6x",
+ "nativeSrc": "6811:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6811:4:41"
+ },
+ {
+ "name": "IC6y",
+ "nativeSrc": "6817:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6817:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6840:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6840:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6852:3:41",
+ "nodeType": "YulLiteral",
+ "src": "6852:3:41",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6836:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6836:3:41"
+ },
+ "nativeSrc": "6836:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6836:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6823:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6823:12:41"
+ },
+ "nativeSrc": "6823:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6823:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6794:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6794:10:41"
+ },
+ "nativeSrc": "6794:64:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6794:64:41"
+ },
+ "nativeSrc": "6794:64:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6794:64:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6903:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6903:4:41"
+ },
+ {
+ "name": "IC7x",
+ "nativeSrc": "6909:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6909:4:41"
+ },
+ {
+ "name": "IC7y",
+ "nativeSrc": "6915:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "6915:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6938:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6938:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6950:3:41",
+ "nodeType": "YulLiteral",
+ "src": "6950:3:41",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6934:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "6934:3:41"
+ },
+ "nativeSrc": "6934:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6934:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6921:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "6921:12:41"
+ },
+ "nativeSrc": "6921:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6921:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6892:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6892:10:41"
+ },
+ "nativeSrc": "6892:64:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6892:64:41"
+ },
+ "nativeSrc": "6892:64:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6892:64:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "7001:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "7001:4:41"
+ },
+ {
+ "name": "IC8x",
+ "nativeSrc": "7007:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "7007:4:41"
+ },
+ {
+ "name": "IC8y",
+ "nativeSrc": "7013:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "7013:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "7036:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "7036:10:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7048:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7048:3:41",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7032:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7032:3:41"
+ },
+ "nativeSrc": "7032:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7032:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7019:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7019:12:41"
+ },
+ "nativeSrc": "7019:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7019:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6990:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "6990:10:41"
+ },
+ "nativeSrc": "6990:64:41",
+ "nodeType": "YulFunctionCall",
+ "src": "6990:64:41"
+ },
+ "nativeSrc": "6990:64:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "6990:64:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7118:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7118:9:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7142:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7142:2:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7129:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7129:12:41"
+ },
+ "nativeSrc": "7129:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7129:16:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7111:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7111:6:41"
+ },
+ "nativeSrc": "7111:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7111:35:41"
+ },
+ "nativeSrc": "7111:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7111:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7174:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7174:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7185:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7185:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7170:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7170:3:41"
+ },
+ "nativeSrc": "7170:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7170:18:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "q",
+ "nativeSrc": "7198:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "7198:1:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7218:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7218:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7222:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7222:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7214:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7214:3:41"
+ },
+ "nativeSrc": "7214:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7214:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7201:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7201:12:41"
+ },
+ "nativeSrc": "7201:25:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7201:25:41"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7194:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7194:3:41"
+ },
+ "nativeSrc": "7194:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7194:33:41"
+ },
+ {
+ "name": "q",
+ "nativeSrc": "7229:1:41",
+ "nodeType": "YulIdentifier",
+ "src": "7229:1:41"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "7190:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7190:3:41"
+ },
+ "nativeSrc": "7190:41:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7190:41:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7163:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7163:6:41"
+ },
+ "nativeSrc": "7163:69:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7163:69:41"
+ },
+ "nativeSrc": "7163:69:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7163:69:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7282:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7282:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7293:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7293:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7278:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7278:3:41"
+ },
+ "nativeSrc": "7278:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7278:18:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7311:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7311:2:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7298:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7298:12:41"
+ },
+ "nativeSrc": "7298:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7298:16:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7271:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7271:6:41"
+ },
+ "nativeSrc": "7271:44:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7271:44:41"
+ },
+ "nativeSrc": "7271:44:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7271:44:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7343:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7343:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7354:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7354:2:41",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7339:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7339:3:41"
+ },
+ "nativeSrc": "7339:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7339:18:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7376:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7376:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7380:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7380:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7372:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7372:3:41"
+ },
+ "nativeSrc": "7372:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7372:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7359:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7359:12:41"
+ },
+ "nativeSrc": "7359:25:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7359:25:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7332:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7332:6:41"
+ },
+ "nativeSrc": "7332:53:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7332:53:41"
+ },
+ "nativeSrc": "7332:53:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7332:53:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7413:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7413:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7424:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7424:3:41",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7409:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7409:3:41"
+ },
+ "nativeSrc": "7409:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7409:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7447:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7447:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7451:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7451:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7443:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7443:3:41"
+ },
+ "nativeSrc": "7443:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7443:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7430:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7430:12:41"
+ },
+ "nativeSrc": "7430:25:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7430:25:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7402:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7402:6:41"
+ },
+ "nativeSrc": "7402:54:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7402:54:41"
+ },
+ "nativeSrc": "7402:54:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7402:54:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7484:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7484:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7495:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7495:3:41",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7480:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7480:3:41"
+ },
+ "nativeSrc": "7480:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7480:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7518:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "7518:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7522:2:41",
+ "nodeType": "YulLiteral",
+ "src": "7522:2:41",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7514:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7514:3:41"
+ },
+ "nativeSrc": "7514:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7514:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7501:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "7501:12:41"
+ },
+ "nativeSrc": "7501:25:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7501:25:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7473:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7473:6:41"
+ },
+ "nativeSrc": "7473:54:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7473:54:41"
+ },
+ "nativeSrc": "7473:54:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7473:54:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7582:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7582:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7593:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7593:3:41",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7578:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7578:3:41"
+ },
+ "nativeSrc": "7578:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7578:19:41"
+ },
+ {
+ "name": "alphax",
+ "nativeSrc": "7599:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7599:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7571:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7571:6:41"
+ },
+ "nativeSrc": "7571:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7571:35:41"
+ },
+ "nativeSrc": "7571:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7571:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7634:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7634:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7645:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7645:3:41",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7630:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7630:3:41"
+ },
+ "nativeSrc": "7630:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7630:19:41"
+ },
+ {
+ "name": "alphay",
+ "nativeSrc": "7651:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7651:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7623:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7623:6:41"
+ },
+ "nativeSrc": "7623:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7623:35:41"
+ },
+ "nativeSrc": "7623:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7623:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7712:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7712:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7723:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7723:3:41",
+ "type": "",
+ "value": "256"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7708:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7708:3:41"
+ },
+ "nativeSrc": "7708:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7708:19:41"
+ },
+ {
+ "name": "betax1",
+ "nativeSrc": "7729:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7729:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7701:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7701:6:41"
+ },
+ "nativeSrc": "7701:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7701:35:41"
+ },
+ "nativeSrc": "7701:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7701:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7764:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7764:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7775:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7775:3:41",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7760:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7760:3:41"
+ },
+ "nativeSrc": "7760:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7760:19:41"
+ },
+ {
+ "name": "betax2",
+ "nativeSrc": "7781:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7781:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7753:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7753:6:41"
+ },
+ "nativeSrc": "7753:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7753:35:41"
+ },
+ "nativeSrc": "7753:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7753:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7816:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7816:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7827:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7827:3:41",
+ "type": "",
+ "value": "320"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7812:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7812:3:41"
+ },
+ "nativeSrc": "7812:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7812:19:41"
+ },
+ {
+ "name": "betay1",
+ "nativeSrc": "7833:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7833:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7805:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7805:6:41"
+ },
+ "nativeSrc": "7805:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7805:35:41"
+ },
+ "nativeSrc": "7805:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7805:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7868:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7868:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7879:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7879:3:41",
+ "type": "",
+ "value": "352"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7864:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7864:3:41"
+ },
+ "nativeSrc": "7864:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7864:19:41"
+ },
+ {
+ "name": "betay2",
+ "nativeSrc": "7885:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7885:6:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7857:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7857:6:41"
+ },
+ "nativeSrc": "7857:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7857:35:41"
+ },
+ "nativeSrc": "7857:35:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7857:35:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7945:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "7945:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7956:3:41",
+ "nodeType": "YulLiteral",
+ "src": "7956:3:41",
+ "type": "",
+ "value": "384"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7941:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7941:3:41"
+ },
+ "nativeSrc": "7941:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7941:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "7972:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "7972:4:41"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "7978:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7978:3:41"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7968:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "7968:3:41"
+ },
+ "nativeSrc": "7968:14:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7968:14:41"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7962:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "7962:5:41"
+ },
+ "nativeSrc": "7962:21:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7962:21:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7934:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "7934:6:41"
+ },
+ "nativeSrc": "7934:50:41",
+ "nodeType": "YulFunctionCall",
+ "src": "7934:50:41"
+ },
+ "nativeSrc": "7934:50:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "7934:50:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8012:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8012:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8023:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8023:3:41",
+ "type": "",
+ "value": "416"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8008:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8008:3:41"
+ },
+ "nativeSrc": "8008:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8008:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8039:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "8039:4:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pVk",
+ "nativeSrc": "8049:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8049:3:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8054:2:41",
+ "nodeType": "YulLiteral",
+ "src": "8054:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8045:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8045:3:41"
+ },
+ "nativeSrc": "8045:12:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8045:12:41"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8035:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8035:3:41"
+ },
+ "nativeSrc": "8035:23:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8035:23:41"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8029:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "8029:5:41"
+ },
+ "nativeSrc": "8029:30:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8029:30:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8001:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8001:6:41"
+ },
+ "nativeSrc": "8001:59:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8001:59:41"
+ },
+ "nativeSrc": "8001:59:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8001:59:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8116:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8116:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8127:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8127:3:41",
+ "type": "",
+ "value": "448"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8112:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8112:3:41"
+ },
+ "nativeSrc": "8112:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8112:19:41"
+ },
+ {
+ "name": "gammax1",
+ "nativeSrc": "8133:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8133:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8105:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8105:6:41"
+ },
+ "nativeSrc": "8105:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8105:36:41"
+ },
+ "nativeSrc": "8105:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8105:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8169:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8169:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8180:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8180:3:41",
+ "type": "",
+ "value": "480"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8165:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8165:3:41"
+ },
+ "nativeSrc": "8165:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8165:19:41"
+ },
+ {
+ "name": "gammax2",
+ "nativeSrc": "8186:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8186:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8158:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8158:6:41"
+ },
+ "nativeSrc": "8158:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8158:36:41"
+ },
+ "nativeSrc": "8158:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8158:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8222:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8222:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8233:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8233:3:41",
+ "type": "",
+ "value": "512"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8218:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8218:3:41"
+ },
+ "nativeSrc": "8218:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8218:19:41"
+ },
+ {
+ "name": "gammay1",
+ "nativeSrc": "8239:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8239:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8211:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8211:6:41"
+ },
+ "nativeSrc": "8211:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8211:36:41"
+ },
+ "nativeSrc": "8211:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8211:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8275:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8275:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8286:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8286:3:41",
+ "type": "",
+ "value": "544"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8271:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8271:3:41"
+ },
+ "nativeSrc": "8271:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8271:19:41"
+ },
+ {
+ "name": "gammay2",
+ "nativeSrc": "8292:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8292:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8264:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8264:6:41"
+ },
+ "nativeSrc": "8264:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8264:36:41"
+ },
+ "nativeSrc": "8264:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8264:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8350:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8350:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8361:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8361:3:41",
+ "type": "",
+ "value": "576"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8346:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8346:3:41"
+ },
+ "nativeSrc": "8346:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8346:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8380:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "8380:2:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8367:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "8367:12:41"
+ },
+ "nativeSrc": "8367:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8367:16:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8339:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8339:6:41"
+ },
+ "nativeSrc": "8339:45:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8339:45:41"
+ },
+ "nativeSrc": "8339:45:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8339:45:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8412:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8412:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8423:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8423:3:41",
+ "type": "",
+ "value": "608"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8408:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8408:3:41"
+ },
+ "nativeSrc": "8408:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8408:19:41"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8446:2:41",
+ "nodeType": "YulIdentifier",
+ "src": "8446:2:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8450:2:41",
+ "nodeType": "YulLiteral",
+ "src": "8450:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8442:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8442:3:41"
+ },
+ "nativeSrc": "8442:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8442:11:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8429:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "8429:12:41"
+ },
+ "nativeSrc": "8429:25:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8429:25:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8401:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8401:6:41"
+ },
+ "nativeSrc": "8401:54:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8401:54:41"
+ },
+ "nativeSrc": "8401:54:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8401:54:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8510:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8510:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8521:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8521:3:41",
+ "type": "",
+ "value": "640"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8506:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8506:3:41"
+ },
+ "nativeSrc": "8506:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8506:19:41"
+ },
+ {
+ "name": "deltax1",
+ "nativeSrc": "8527:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8527:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8499:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8499:6:41"
+ },
+ "nativeSrc": "8499:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8499:36:41"
+ },
+ "nativeSrc": "8499:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8499:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8563:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8563:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8574:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8574:3:41",
+ "type": "",
+ "value": "672"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8559:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8559:3:41"
+ },
+ "nativeSrc": "8559:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8559:19:41"
+ },
+ {
+ "name": "deltax2",
+ "nativeSrc": "8580:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8580:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8552:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8552:6:41"
+ },
+ "nativeSrc": "8552:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8552:36:41"
+ },
+ "nativeSrc": "8552:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8552:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8616:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8616:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8627:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8627:3:41",
+ "type": "",
+ "value": "704"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8612:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8612:3:41"
+ },
+ "nativeSrc": "8612:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8612:19:41"
+ },
+ {
+ "name": "deltay1",
+ "nativeSrc": "8633:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8633:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8605:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8605:6:41"
+ },
+ "nativeSrc": "8605:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8605:36:41"
+ },
+ "nativeSrc": "8605:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8605:36:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8669:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8669:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8680:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8680:3:41",
+ "type": "",
+ "value": "736"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8665:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8665:3:41"
+ },
+ "nativeSrc": "8665:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8665:19:41"
+ },
+ {
+ "name": "deltay2",
+ "nativeSrc": "8686:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8686:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8658:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8658:6:41"
+ },
+ "nativeSrc": "8658:36:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8658:36:41"
+ },
+ "nativeSrc": "8658:36:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8658:36:41"
+ },
+ {
+ "nativeSrc": "8713:79:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8713:79:41",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "8743:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8743:3:41"
+ },
+ "nativeSrc": "8743:5:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8743:5:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8750:4:41",
+ "nodeType": "YulLiteral",
+ "src": "8750:4:41",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8739:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8739:3:41"
+ },
+ "nativeSrc": "8739:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8739:16:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8757:1:41",
+ "nodeType": "YulLiteral",
+ "src": "8757:1:41",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8760:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8760:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8771:3:41",
+ "nodeType": "YulLiteral",
+ "src": "8771:3:41",
+ "type": "",
+ "value": "768"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8776:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8776:9:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8787:4:41",
+ "nodeType": "YulLiteral",
+ "src": "8787:4:41",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "8728:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "8728:10:41"
+ },
+ "nativeSrc": "8728:64:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8728:64:41"
+ },
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "8717:7:41",
+ "nodeType": "YulTypedName",
+ "src": "8717:7:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8810:38:41",
+ "nodeType": "YulAssignment",
+ "src": "8810:38:41",
+ "value": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "8822:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "8822:7:41"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8837:9:41",
+ "nodeType": "YulIdentifier",
+ "src": "8837:9:41"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8831:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "8831:5:41"
+ },
+ "nativeSrc": "8831:16:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8831:16:41"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8818:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8818:3:41"
+ },
+ "nativeSrc": "8818:30:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8818:30:41"
+ },
+ "variableNames": [
+ {
+ "name": "isOk",
+ "nativeSrc": "8810:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "8810:4:41"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checkPairing",
+ "nativeSrc": "5982:2880:41",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pA",
+ "nativeSrc": "6004:2:41",
+ "nodeType": "YulTypedName",
+ "src": "6004:2:41",
+ "type": ""
+ },
+ {
+ "name": "pB",
+ "nativeSrc": "6008:2:41",
+ "nodeType": "YulTypedName",
+ "src": "6008:2:41",
+ "type": ""
+ },
+ {
+ "name": "pC",
+ "nativeSrc": "6012:2:41",
+ "nodeType": "YulTypedName",
+ "src": "6012:2:41",
+ "type": ""
+ },
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6016:10:41",
+ "nodeType": "YulTypedName",
+ "src": "6016:10:41",
+ "type": ""
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "6028:4:41",
+ "nodeType": "YulTypedName",
+ "src": "6028:4:41",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "isOk",
+ "nativeSrc": "6037:4:41",
+ "nodeType": "YulTypedName",
+ "src": "6037:4:41",
+ "type": ""
+ }
+ ],
+ "src": "5982:2880:41"
+ },
+ {
+ "nativeSrc": "8876:23:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8876:23:41",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8894:4:41",
+ "nodeType": "YulLiteral",
+ "src": "8894:4:41",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8888:5:41",
+ "nodeType": "YulIdentifier",
+ "src": "8888:5:41"
+ },
+ "nativeSrc": "8888:11:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8888:11:41"
+ },
+ "variables": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8880:4:41",
+ "nodeType": "YulTypedName",
+ "src": "8880:4:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8919:4:41",
+ "nodeType": "YulLiteral",
+ "src": "8919:4:41",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8929:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "8929:4:41"
+ },
+ {
+ "name": "pLastMem",
+ "nativeSrc": "8935:8:41",
+ "nodeType": "YulIdentifier",
+ "src": "8935:8:41"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8925:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "8925:3:41"
+ },
+ "nativeSrc": "8925:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8925:19:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8912:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "8912:6:41"
+ },
+ "nativeSrc": "8912:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "8912:33:41"
+ },
+ "nativeSrc": "8912:33:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "8912:33:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9051:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9051:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9064:1:41",
+ "nodeType": "YulLiteral",
+ "src": "9064:1:41",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9047:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9047:3:41"
+ },
+ "nativeSrc": "9047:19:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9047:19:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9034:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9034:12:41"
+ },
+ "nativeSrc": "9034:33:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9034:33:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9023:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9023:10:41"
+ },
+ "nativeSrc": "9023:45:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9023:45:41"
+ },
+ "nativeSrc": "9023:45:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9023:45:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9122:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9122:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9135:2:41",
+ "nodeType": "YulLiteral",
+ "src": "9135:2:41",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9118:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9118:3:41"
+ },
+ "nativeSrc": "9118:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9118:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9105:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9105:12:41"
+ },
+ "nativeSrc": "9105:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9105:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9094:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9094:10:41"
+ },
+ "nativeSrc": "9094:46:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9094:46:41"
+ },
+ "nativeSrc": "9094:46:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9094:46:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9194:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9194:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9207:2:41",
+ "nodeType": "YulLiteral",
+ "src": "9207:2:41",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9190:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9190:3:41"
+ },
+ "nativeSrc": "9190:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9190:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9177:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9177:12:41"
+ },
+ "nativeSrc": "9177:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9177:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9166:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9166:10:41"
+ },
+ "nativeSrc": "9166:46:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9166:46:41"
+ },
+ "nativeSrc": "9166:46:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9166:46:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9266:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9266:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9279:2:41",
+ "nodeType": "YulLiteral",
+ "src": "9279:2:41",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9262:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9262:3:41"
+ },
+ "nativeSrc": "9262:20:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9262:20:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9249:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9249:12:41"
+ },
+ "nativeSrc": "9249:34:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9249:34:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9238:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9238:10:41"
+ },
+ "nativeSrc": "9238:46:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9238:46:41"
+ },
+ "nativeSrc": "9238:46:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9238:46:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9338:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9338:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9351:3:41",
+ "nodeType": "YulLiteral",
+ "src": "9351:3:41",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9334:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9334:3:41"
+ },
+ "nativeSrc": "9334:21:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9334:21:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9321:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9321:12:41"
+ },
+ "nativeSrc": "9321:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9321:35:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9310:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9310:10:41"
+ },
+ "nativeSrc": "9310:47:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9310:47:41"
+ },
+ "nativeSrc": "9310:47:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9310:47:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9411:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9411:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9424:3:41",
+ "nodeType": "YulLiteral",
+ "src": "9424:3:41",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9407:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9407:3:41"
+ },
+ "nativeSrc": "9407:21:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9407:21:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9394:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9394:12:41"
+ },
+ "nativeSrc": "9394:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9394:35:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9383:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9383:10:41"
+ },
+ "nativeSrc": "9383:47:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9383:47:41"
+ },
+ "nativeSrc": "9383:47:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9383:47:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9484:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9484:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9497:3:41",
+ "nodeType": "YulLiteral",
+ "src": "9497:3:41",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9480:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9480:3:41"
+ },
+ "nativeSrc": "9480:21:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9480:21:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9467:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9467:12:41"
+ },
+ "nativeSrc": "9467:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9467:35:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9456:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9456:10:41"
+ },
+ "nativeSrc": "9456:47:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9456:47:41"
+ },
+ "nativeSrc": "9456:47:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9456:47:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9557:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9557:11:41"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9570:3:41",
+ "nodeType": "YulLiteral",
+ "src": "9570:3:41",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9553:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9553:3:41"
+ },
+ "nativeSrc": "9553:21:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9553:21:41"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9540:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9540:12:41"
+ },
+ "nativeSrc": "9540:35:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9540:35:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9529:10:41",
+ "nodeType": "YulIdentifier",
+ "src": "9529:10:41"
+ },
+ "nativeSrc": "9529:47:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9529:47:41"
+ },
+ "nativeSrc": "9529:47:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9529:47:41"
+ },
+ {
+ "nativeSrc": "9643:61:41",
+ "nodeType": "YulVariableDeclaration",
+ "src": "9643:61:41",
+ "value": {
+ "arguments": [
+ {
+ "name": "_pA",
+ "nativeSrc": "9671:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9671:3:41"
+ },
+ {
+ "name": "_pB",
+ "nativeSrc": "9676:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9676:3:41"
+ },
+ {
+ "name": "_pC",
+ "nativeSrc": "9681:3:41",
+ "nodeType": "YulIdentifier",
+ "src": "9681:3:41"
+ },
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9686:11:41",
+ "nodeType": "YulIdentifier",
+ "src": "9686:11:41"
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "9699:4:41",
+ "nodeType": "YulIdentifier",
+ "src": "9699:4:41"
+ }
+ ],
+ "functionName": {
+ "name": "checkPairing",
+ "nativeSrc": "9658:12:41",
+ "nodeType": "YulIdentifier",
+ "src": "9658:12:41"
+ },
+ "nativeSrc": "9658:46:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9658:46:41"
+ },
+ "variables": [
+ {
+ "name": "isValid",
+ "nativeSrc": "9647:7:41",
+ "nodeType": "YulTypedName",
+ "src": "9647:7:41",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9725:1:41",
+ "nodeType": "YulLiteral",
+ "src": "9725:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "isValid",
+ "nativeSrc": "9728:7:41",
+ "nodeType": "YulIdentifier",
+ "src": "9728:7:41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "9718:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "9718:6:41"
+ },
+ "nativeSrc": "9718:18:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9718:18:41"
+ },
+ "nativeSrc": "9718:18:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9718:18:41"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9757:1:41",
+ "nodeType": "YulLiteral",
+ "src": "9757:1:41",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9760:4:41",
+ "nodeType": "YulLiteral",
+ "src": "9760:4:41",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "9750:6:41",
+ "nodeType": "YulIdentifier",
+ "src": "9750:6:41"
+ },
+ "nativeSrc": "9750:15:41",
+ "nodeType": "YulFunctionCall",
+ "src": "9750:15:41"
+ },
+ "nativeSrc": "9750:15:41",
+ "nodeType": "YulExpressionStatement",
+ "src": "9750:15:41"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 17732,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6170:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17735,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6214:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17738,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6326:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17741,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6332:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17744,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6422:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17747,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6428:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17750,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6519:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17753,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6525:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17756,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6616:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17759,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6622:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17762,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6713:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17765,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6719:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17768,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6811:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17771,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6817:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17774,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6909:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17777,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6915:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17780,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7007:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17783,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7013:4:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17796,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9671:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17802,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9676:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17806,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9681:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9051:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9122:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9194:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9266:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9338:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9411:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9484:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9557:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17810,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9686:11:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17690,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7599:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17693,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7651:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17696,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7729:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17699,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7781:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17702,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7833:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17705,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7885:6:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17720,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8527:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17723,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8580:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17726,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8633:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17729,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8686:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17708,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8133:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17711,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8186:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17714,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8239:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17717,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8292:7:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17792,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8935:8:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17789,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6087:8:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17786,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6135:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17786,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7978:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17786,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8049:3:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17687,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7198:1:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17687,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7229:1:41",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17684,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5020:1:41",
+ "valueSize": 1
+ }
+ ],
+ "id": 17815,
+ "nodeType": "InlineAssembly",
+ "src": "4940:4836:41"
+ }
+ ]
+ },
+ "functionSelector": "c9219a7a",
+ "id": 17817,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "4792:11:41",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17811,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17796,
+ "mutability": "mutable",
+ "name": "_pA",
+ "nameLocation": "4821:3:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17817,
+ "src": "4804:20:41",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17793,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4804:4:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17795,
+ "length": {
+ "hexValue": "32",
+ "id": 17794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4809:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4804:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17802,
+ "mutability": "mutable",
+ "name": "_pB",
+ "nameLocation": "4846:3:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17817,
+ "src": "4826:23:41",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 17797,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4826:4:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17799,
+ "length": {
+ "hexValue": "32",
+ "id": 17798,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4831:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4826:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 17801,
+ "length": {
+ "hexValue": "32",
+ "id": 17800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4834:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4826:10:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17806,
+ "mutability": "mutable",
+ "name": "_pC",
+ "nameLocation": "4868:3:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17817,
+ "src": "4851:20:41",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17803,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4851:4:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17805,
+ "length": {
+ "hexValue": "32",
+ "id": 17804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4856:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4851:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17810,
+ "mutability": "mutable",
+ "name": "_pubSignals",
+ "nameLocation": "4890:11:41",
+ "nodeType": "VariableDeclaration",
+ "scope": 17817,
+ "src": "4873:28:41",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17807,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4873:4:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17809,
+ "length": {
+ "hexValue": "38",
+ "id": 17808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4878:1:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4873:7:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4803:99:41"
+ },
+ "returnParameters": {
+ "id": 17814,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17813,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17817,
+ "src": "4924:4:41",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 17812,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4924:4:41",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4923:6:41"
+ },
+ "scope": 17818,
+ "src": "4783:5000:41",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 17819,
+ "src": "831:8955:41",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "798:8989:41"
+ },
+ "id": 41
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha256.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha256.sol",
+ "exportedSymbols": {
+ "Verifier_idcard_sha256": [
+ 17957
+ ]
+ },
+ "id": 17958,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 17820,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "798:31:42"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Verifier_idcard_sha256",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 17957,
+ "linearizedBaseContracts": [
+ 17957
+ ],
+ "name": "Verifier_idcard_sha256",
+ "nameLocation": "840:22:42",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 17823,
+ "mutability": "constant",
+ "name": "r",
+ "nameLocation": "911:1:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "894:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17821,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137",
+ "id": 17822,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "918:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...5617"
+ },
+ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17826,
+ "mutability": "constant",
+ "name": "q",
+ "nameLocation": "1041:1:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1024:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17824,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1024:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833",
+ "id": 17825,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1047:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...8583"
+ },
+ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17829,
+ "mutability": "constant",
+ "name": "alphax",
+ "nameLocation": "1177:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1160:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17827,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1160:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432",
+ "id": 17828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1187:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1",
+ "typeString": "int_const 2049...(69 digits omitted)...3042"
+ },
+ "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17832,
+ "mutability": "constant",
+ "name": "alphay",
+ "nameLocation": "1287:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1270:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17830,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1270:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538",
+ "id": 17831,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1297:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1",
+ "typeString": "int_const 9383...(68 digits omitted)...5958"
+ },
+ "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17835,
+ "mutability": "constant",
+ "name": "betax1",
+ "nameLocation": "1396:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1379:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17833,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1379:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332",
+ "id": 17834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1406:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1",
+ "typeString": "int_const 4252...(68 digits omitted)...7132"
+ },
+ "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17838,
+ "mutability": "constant",
+ "name": "betax2",
+ "nameLocation": "1505:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1488:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17836,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1488:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331",
+ "id": 17837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1515:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1",
+ "typeString": "int_const 6375...(68 digits omitted)...8731"
+ },
+ "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17841,
+ "mutability": "constant",
+ "name": "betay1",
+ "nameLocation": "1614:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1597:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17839,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1597:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739",
+ "id": 17840,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1624:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1",
+ "typeString": "int_const 2184...(69 digits omitted)...6679"
+ },
+ "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17844,
+ "mutability": "constant",
+ "name": "betay2",
+ "nameLocation": "1724:6:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1707:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17842,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1707:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536",
+ "id": 17843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1734:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1",
+ "typeString": "int_const 1050...(69 digits omitted)...6856"
+ },
+ "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17847,
+ "mutability": "constant",
+ "name": "gammax1",
+ "nameLocation": "1834:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1817:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17845,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1817:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334",
+ "id": 17846,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1844:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1",
+ "typeString": "int_const 1155...(69 digits omitted)...5634"
+ },
+ "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17850,
+ "mutability": "constant",
+ "name": "gammax2",
+ "nameLocation": "1944:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "1927:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17848,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1927:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831",
+ "id": 17849,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1954:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1",
+ "typeString": "int_const 1085...(69 digits omitted)...2781"
+ },
+ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17853,
+ "mutability": "constant",
+ "name": "gammay1",
+ "nameLocation": "2054:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2037:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17851,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2037:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331",
+ "id": 17852,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2064:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1",
+ "typeString": "int_const 4082...(68 digits omitted)...3531"
+ },
+ "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17856,
+ "mutability": "constant",
+ "name": "gammay2",
+ "nameLocation": "2163:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2146:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17854,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2146:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330",
+ "id": 17855,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2173:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1",
+ "typeString": "int_const 8495...(68 digits omitted)...1930"
+ },
+ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17859,
+ "mutability": "constant",
+ "name": "deltax1",
+ "nameLocation": "2272:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2255:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17857,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2255:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37313038313732303932353733383832313035373134313530343230383139393033383734393239323733353433393831333336303737303936353438353735323333383336363938303531",
+ "id": 17858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2282:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7108172092573882105714150420819903874929273543981336077096548575233836698051_by_1",
+ "typeString": "int_const 7108...(68 digits omitted)...8051"
+ },
+ "value": "7108172092573882105714150420819903874929273543981336077096548575233836698051"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17862,
+ "mutability": "constant",
+ "name": "deltax2",
+ "nameLocation": "2381:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2364:103:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17860,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2364:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39363935343339303638393535353033313736303030313632313839323039343533323630393730353232313739343237323236383236333932343835393530383834373332303333373239",
+ "id": 17861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2391:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9695439068955503176000162189209453260970522179427226826392485950884732033729_by_1",
+ "typeString": "int_const 9695...(68 digits omitted)...3729"
+ },
+ "value": "9695439068955503176000162189209453260970522179427226826392485950884732033729"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17865,
+ "mutability": "constant",
+ "name": "deltay1",
+ "nameLocation": "2490:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2473:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17863,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2473:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3136363234353833333235373731353034393033353335303534363337333337313434343736393936373235393839313133373131383336393237313132333435343431303133393139393330",
+ "id": 17864,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2500:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16624583325771504903535054637337144476996725989113711836927112345441013919930_by_1",
+ "typeString": "int_const 1662...(69 digits omitted)...9930"
+ },
+ "value": "16624583325771504903535054637337144476996725989113711836927112345441013919930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17868,
+ "mutability": "constant",
+ "name": "deltay2",
+ "nameLocation": "2600:7:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2583:104:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17866,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2583:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139323736393635383434343536343833303830333030353130383537313630343932323533323235343134313532393730363438373335383933323531363635333539343238323336363330",
+ "id": 17867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2610:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19276965844456483080300510857160492253225414152970648735893251665359428236630_by_1",
+ "typeString": "int_const 1927...(69 digits omitted)...6630"
+ },
+ "value": "19276965844456483080300510857160492253225414152970648735893251665359428236630"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17871,
+ "mutability": "constant",
+ "name": "IC0x",
+ "nameLocation": "2716:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2699:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17869,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2699:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35383037303733373834313532303235393836363639373138393732373235303637343931353038353239353439323630323131383237373931313833343037393438393135343336303533",
+ "id": 17870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2723:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5807073784152025986669718972725067491508529549260211827791183407948915436053_by_1",
+ "typeString": "int_const 5807...(68 digits omitted)...6053"
+ },
+ "value": "5807073784152025986669718972725067491508529549260211827791183407948915436053"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17874,
+ "mutability": "constant",
+ "name": "IC0y",
+ "nameLocation": "2822:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2805:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17872,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2805:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "33313533393436383733393639343939333332383232333834383131303130343732313534373130353738393230343331363735373535383030343634383635393639373336363633303336",
+ "id": 17873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2829:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3153946873969499332822384811010472154710578920431675755800464865969736663036_by_1",
+ "typeString": "int_const 3153...(68 digits omitted)...3036"
+ },
+ "value": "3153946873969499332822384811010472154710578920431675755800464865969736663036"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17877,
+ "mutability": "constant",
+ "name": "IC1x",
+ "nameLocation": "2933:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "2916:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17875,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2916:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35323833373231353837373938343838303233393135303935363431363338363034313536393936303431363630353039323531333638353632313330313039373536303539373939353939",
+ "id": 17876,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2940:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5283721587798488023915095641638604156996041660509251368562130109756059799599_by_1",
+ "typeString": "int_const 5283...(68 digits omitted)...9599"
+ },
+ "value": "5283721587798488023915095641638604156996041660509251368562130109756059799599"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17880,
+ "mutability": "constant",
+ "name": "IC1y",
+ "nameLocation": "3039:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3022:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17878,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3022:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32323531343435393330323730363131313538393236313932333234313038313539373136383033383431323035323531303331373033393136363231303533383437343431303037333832",
+ "id": 17879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3046:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2251445930270611158926192324108159716803841205251031703916621053847441007382_by_1",
+ "typeString": "int_const 2251...(68 digits omitted)...7382"
+ },
+ "value": "2251445930270611158926192324108159716803841205251031703916621053847441007382"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17883,
+ "mutability": "constant",
+ "name": "IC2x",
+ "nameLocation": "3150:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3133:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17881,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3133:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231343037303532353632343438393838393532373338333538343236333832333930383333323936323534373632323539383237373738373936333739343738353535303038363932303030",
+ "id": 17882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3157:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21407052562448988952738358426382390833296254762259827778796379478555008692000_by_1",
+ "typeString": "int_const 2140...(69 digits omitted)...2000"
+ },
+ "value": "21407052562448988952738358426382390833296254762259827778796379478555008692000"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17886,
+ "mutability": "constant",
+ "name": "IC2y",
+ "nameLocation": "3257:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3240:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17884,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3240:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138353931373437373136333833353531303839393330373737393235393434353831333736373633303338383434373239383333363730313834353733303134393637303735363933393633",
+ "id": 17885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3264:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18591747716383551089930777925944581376763038844729833670184573014967075693963_by_1",
+ "typeString": "int_const 1859...(69 digits omitted)...3963"
+ },
+ "value": "18591747716383551089930777925944581376763038844729833670184573014967075693963"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17889,
+ "mutability": "constant",
+ "name": "IC3x",
+ "nameLocation": "3369:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3352:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17887,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3352:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3136303634313738333434343836383039323438363434323731363535393732313432323135343733303037353639323235323530393536323537343033343238393431373535393834323136",
+ "id": 17888,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3376:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16064178344486809248644271655972142215473007569225250956257403428941755984216_by_1",
+ "typeString": "int_const 1606...(69 digits omitted)...4216"
+ },
+ "value": "16064178344486809248644271655972142215473007569225250956257403428941755984216"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17892,
+ "mutability": "constant",
+ "name": "IC3y",
+ "nameLocation": "3476:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3459:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17890,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3459:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3136303632363735373031393331393139393930393137333535373036353033343832303434343737373735393230323336343237353236353033343132393239353239333939393138353632",
+ "id": 17891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3483:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16062675701931919990917355706503482044477775920236427526503412929529399918562_by_1",
+ "typeString": "int_const 1606...(69 digits omitted)...8562"
+ },
+ "value": "16062675701931919990917355706503482044477775920236427526503412929529399918562"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17895,
+ "mutability": "constant",
+ "name": "IC4x",
+ "nameLocation": "3588:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3571:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17893,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3571:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31353436323735343137383633333937323338353831323235353438333433353338373037303035333138333234333533373538343939323434313132383937323635383336323338323239",
+ "id": 17894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3595:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1546275417863397238581225548343538707005318324353758499244112897265836238229_by_1",
+ "typeString": "int_const 1546...(68 digits omitted)...8229"
+ },
+ "value": "1546275417863397238581225548343538707005318324353758499244112897265836238229"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17898,
+ "mutability": "constant",
+ "name": "IC4y",
+ "nameLocation": "3694:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3677:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17896,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3677:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3133303633373534333233383631343832333736323836393935303335313933323833373438393530323135393532363432353637313537383031303032323734373931343935393138373836",
+ "id": 17897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3701:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_13063754323861482376286995035193283748950215952642567157801002274791495918786_by_1",
+ "typeString": "int_const 1306...(69 digits omitted)...8786"
+ },
+ "value": "13063754323861482376286995035193283748950215952642567157801002274791495918786"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17901,
+ "mutability": "constant",
+ "name": "IC5x",
+ "nameLocation": "3806:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3789:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17899,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3789:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31313431303739333133303231353635313139343932383333393331373930353935353738313833363333323939363936303335383631363531323736353234323735313131313233373833",
+ "id": 17900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3813:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1141079313021565119492833931790595578183633299696035861651276524275111123783_by_1",
+ "typeString": "int_const 1141...(68 digits omitted)...3783"
+ },
+ "value": "1141079313021565119492833931790595578183633299696035861651276524275111123783"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17904,
+ "mutability": "constant",
+ "name": "IC5y",
+ "nameLocation": "3912:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "3895:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17902,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3895:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37313636303834333130313533393330343830393237363338373231313732353438353233363630373530393731323034353434303738343530363238333433323131393139323432393235",
+ "id": 17903,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3919:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7166084310153930480927638721172548523660750971204544078450628343211919242925_by_1",
+ "typeString": "int_const 7166...(68 digits omitted)...2925"
+ },
+ "value": "7166084310153930480927638721172548523660750971204544078450628343211919242925"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17907,
+ "mutability": "constant",
+ "name": "IC6x",
+ "nameLocation": "4023:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4006:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17905,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4006:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31393731313739353239393038383839343536313231363337333835383635383731303830323934393136313936383835323538343839393038313436343139373831363539323832313630",
+ "id": 17906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4030:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1971179529908889456121637385865871080294916196885258489908146419781659282160_by_1",
+ "typeString": "int_const 1971...(68 digits omitted)...2160"
+ },
+ "value": "1971179529908889456121637385865871080294916196885258489908146419781659282160"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17910,
+ "mutability": "constant",
+ "name": "IC6y",
+ "nameLocation": "4129:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4112:98:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17908,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4112:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3530353739353734343338313431333735313836333938303939303238333932363739323035393134353331353436353139343830383735363231393137323937393633383536343431",
+ "id": 17909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4136:74:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_50579574438141375186398099028392679205914531546519480875621917297963856441_by_1",
+ "typeString": "int_const 5057...(66 digits omitted)...6441"
+ },
+ "value": "50579574438141375186398099028392679205914531546519480875621917297963856441"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17913,
+ "mutability": "constant",
+ "name": "IC7x",
+ "nameLocation": "4238:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4221:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17911,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4221:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39313030313939373535343539373135373133353139333933333137303433323830303235363135323837383839373434313830323735343631323836303034333332373738303133303336",
+ "id": 17912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4245:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9100199755459715713519393317043280025615287889744180275461286004332778013036_by_1",
+ "typeString": "int_const 9100...(68 digits omitted)...3036"
+ },
+ "value": "9100199755459715713519393317043280025615287889744180275461286004332778013036"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17916,
+ "mutability": "constant",
+ "name": "IC7y",
+ "nameLocation": "4344:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4327:100:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17914,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4327:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37303631313635313037323538373936343331373636363036353436333638313433343138363836313030313233323037333835393931323634323132343834313934373533353638373431",
+ "id": 17915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4351:76:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7061165107258796431766606546368143418686100123207385991264212484194753568741_by_1",
+ "typeString": "int_const 7061...(68 digits omitted)...8741"
+ },
+ "value": "7061165107258796431766606546368143418686100123207385991264212484194753568741"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17919,
+ "mutability": "constant",
+ "name": "IC8x",
+ "nameLocation": "4455:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4438:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17917,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4438:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3137333634393732363431383938313632353939343333363934303038353338363233343435323133333336303030383030383930353632323334363234373333323834323436343933373830",
+ "id": 17918,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4462:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17364972641898162599433694008538623445213336000800890562234624733284246493780_by_1",
+ "typeString": "int_const 1736...(69 digits omitted)...3780"
+ },
+ "value": "17364972641898162599433694008538623445213336000800890562234624733284246493780"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17922,
+ "mutability": "constant",
+ "name": "IC8y",
+ "nameLocation": "4562:4:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4545:101:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17920,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4545:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132373436383439353939393834353932323334393735343730373536353933373736373436353533353133353032383537343931343531313838393630333630363735333038383136323137",
+ "id": 17921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4569:77:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12746849599984592234975470756593776746553513502857491451188960360675308816217_by_1",
+ "typeString": "int_const 1274...(69 digits omitted)...6217"
+ },
+ "value": "12746849599984592234975470756593776746553513502857491451188960360675308816217"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17925,
+ "mutability": "constant",
+ "name": "pVk",
+ "nameLocation": "4694:3:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4678:23:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17923,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4678:6:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 17924,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4700:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17928,
+ "mutability": "constant",
+ "name": "pPairing",
+ "nameLocation": "4723:8:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4707:30:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17926,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4707:6:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "313238",
+ "id": 17927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4734:3:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17931,
+ "mutability": "constant",
+ "name": "pLastMem",
+ "nameLocation": "4760:8:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17957,
+ "src": "4744:30:42",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 17929,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4744:6:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "383936",
+ "id": 17930,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4771:3:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_896_by_1",
+ "typeString": "int_const 896"
+ },
+ "value": "896"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 17955,
+ "nodeType": "Block",
+ "src": "4928:4853:42",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4947:4827:42",
+ "nodeType": "YulBlock",
+ "src": "4947:4827:42",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4984:140:42",
+ "nodeType": "YulBlock",
+ "src": "4984:140:42",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5022:88:42",
+ "nodeType": "YulBlock",
+ "src": "5022:88:42",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5051:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5051:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5054:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5054:1:42",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5044:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:42"
+ },
+ "nativeSrc": "5044:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5044:12:42"
+ },
+ "nativeSrc": "5044:12:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5044:12:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5084:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5084:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5087:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5087:4:42",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5077:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5077:6:42"
+ },
+ "nativeSrc": "5077:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5077:15:42"
+ },
+ "nativeSrc": "5077:15:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5077:15:42"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "v",
+ "nativeSrc": "5015:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "5015:1:42"
+ },
+ {
+ "name": "r",
+ "nativeSrc": "5018:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "5018:1:42"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5012:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "5012:2:42"
+ },
+ "nativeSrc": "5012:8:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5012:8:42"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5005:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5005:6:42"
+ },
+ "nativeSrc": "5005:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5005:16:42"
+ },
+ "nativeSrc": "5002:108:42",
+ "nodeType": "YulIf",
+ "src": "5002:108:42"
+ }
+ ]
+ },
+ "name": "checkField",
+ "nativeSrc": "4961:163:42",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "v",
+ "nativeSrc": "4981:1:42",
+ "nodeType": "YulTypedName",
+ "src": "4981:1:42",
+ "type": ""
+ }
+ ],
+ "src": "4961:163:42"
+ },
+ {
+ "body": {
+ "nativeSrc": "5261:705:42",
+ "nodeType": "YulBlock",
+ "src": "5261:705:42",
+ "statements": [
+ {
+ "nativeSrc": "5279:11:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5279:11:42",
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "5283:7:42",
+ "nodeType": "YulTypedName",
+ "src": "5283:7:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5307:22:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5307:22:42",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5324:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5324:4:42",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5318:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "5318:5:42"
+ },
+ "nativeSrc": "5318:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5318:11:42"
+ },
+ "variables": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5311:3:42",
+ "nodeType": "YulTypedName",
+ "src": "5311:3:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5353:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5353:3:42"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5358:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "5358:1:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5346:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5346:6:42"
+ },
+ "nativeSrc": "5346:14:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5346:14:42"
+ },
+ "nativeSrc": "5346:14:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5346:14:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5388:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5388:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5393:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5393:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5384:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5384:3:42"
+ },
+ "nativeSrc": "5384:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5384:12:42"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5398:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "5398:1:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5377:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5377:6:42"
+ },
+ "nativeSrc": "5377:23:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5377:23:42"
+ },
+ "nativeSrc": "5377:23:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5377:23:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5428:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5428:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5433:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5433:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5424:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5424:3:42"
+ },
+ "nativeSrc": "5424:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5424:12:42"
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5438:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "5438:1:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5417:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5417:6:42"
+ },
+ "nativeSrc": "5417:23:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5417:23:42"
+ },
+ "nativeSrc": "5417:23:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5417:23:42"
+ },
+ {
+ "nativeSrc": "5458:60:42",
+ "nodeType": "YulAssignment",
+ "src": "5458:60:42",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5484:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5484:3:42"
+ },
+ "nativeSrc": "5484:5:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5484:5:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5491:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5491:4:42",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5480:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5480:3:42"
+ },
+ "nativeSrc": "5480:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5480:16:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5498:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5498:1:42",
+ "type": "",
+ "value": "7"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5501:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5501:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5506:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5506:2:42",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5510:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5510:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5515:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5515:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5469:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "5469:10:42"
+ },
+ "nativeSrc": "5469:49:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5469:49:42"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5458:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "5458:7:42"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5555:88:42",
+ "nodeType": "YulBlock",
+ "src": "5555:88:42",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5584:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5584:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5587:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5587:1:42",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5577:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5577:6:42"
+ },
+ "nativeSrc": "5577:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5577:12:42"
+ },
+ "nativeSrc": "5577:12:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5577:12:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5617:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5617:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5620:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5620:4:42",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5610:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5610:6:42"
+ },
+ "nativeSrc": "5610:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5610:15:42"
+ },
+ "nativeSrc": "5610:15:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5610:15:42"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5546:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "5546:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5539:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5539:6:42"
+ },
+ "nativeSrc": "5539:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5539:15:42"
+ },
+ "nativeSrc": "5536:107:42",
+ "nodeType": "YulIf",
+ "src": "5536:107:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5672:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5672:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5677:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5677:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5668:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5668:3:42"
+ },
+ "nativeSrc": "5668:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5668:12:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5688:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "5688:2:42"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5682:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "5682:5:42"
+ },
+ "nativeSrc": "5682:9:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5682:9:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5661:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5661:6:42"
+ },
+ "nativeSrc": "5661:31:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5661:31:42"
+ },
+ "nativeSrc": "5661:31:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5661:31:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5720:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5720:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5725:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5725:2:42",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5716:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5716:3:42"
+ },
+ "nativeSrc": "5716:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5716:12:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5740:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "5740:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5744:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5744:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5736:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5736:3:42"
+ },
+ "nativeSrc": "5736:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5736:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5730:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "5730:5:42"
+ },
+ "nativeSrc": "5730:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5730:18:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5709:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5709:6:42"
+ },
+ "nativeSrc": "5709:40:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5709:40:42"
+ },
+ "nativeSrc": "5709:40:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5709:40:42"
+ },
+ {
+ "nativeSrc": "5767:60:42",
+ "nodeType": "YulAssignment",
+ "src": "5767:60:42",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5793:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5793:3:42"
+ },
+ "nativeSrc": "5793:5:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5793:5:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5800:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5800:4:42",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5789:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5789:3:42"
+ },
+ "nativeSrc": "5789:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5789:16:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5807:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5807:1:42",
+ "type": "",
+ "value": "6"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5810:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "5810:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5815:3:42",
+ "nodeType": "YulLiteral",
+ "src": "5815:3:42",
+ "type": "",
+ "value": "128"
+ },
+ {
+ "name": "pR",
+ "nativeSrc": "5820:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "5820:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5824:2:42",
+ "nodeType": "YulLiteral",
+ "src": "5824:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5778:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "5778:10:42"
+ },
+ "nativeSrc": "5778:49:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5778:49:42"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5767:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "5767:7:42"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5864:88:42",
+ "nodeType": "YulBlock",
+ "src": "5864:88:42",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5893:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5893:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5896:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5896:1:42",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5886:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5886:6:42"
+ },
+ "nativeSrc": "5886:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5886:12:42"
+ },
+ "nativeSrc": "5886:12:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5886:12:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5926:1:42",
+ "nodeType": "YulLiteral",
+ "src": "5926:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5929:4:42",
+ "nodeType": "YulLiteral",
+ "src": "5929:4:42",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5919:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5919:6:42"
+ },
+ "nativeSrc": "5919:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5919:15:42"
+ },
+ "nativeSrc": "5919:15:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "5919:15:42"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5855:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "5855:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5848:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "5848:6:42"
+ },
+ "nativeSrc": "5848:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "5848:15:42"
+ },
+ "nativeSrc": "5845:107:42",
+ "nodeType": "YulIf",
+ "src": "5845:107:42"
+ }
+ ]
+ },
+ "name": "g1_mulAccC",
+ "nativeSrc": "5228:738:42",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pR",
+ "nativeSrc": "5248:2:42",
+ "nodeType": "YulTypedName",
+ "src": "5248:2:42",
+ "type": ""
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5252:1:42",
+ "nodeType": "YulTypedName",
+ "src": "5252:1:42",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5255:1:42",
+ "nodeType": "YulTypedName",
+ "src": "5255:1:42",
+ "type": ""
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5258:1:42",
+ "nodeType": "YulTypedName",
+ "src": "5258:1:42",
+ "type": ""
+ }
+ ],
+ "src": "5228:738:42"
+ },
+ {
+ "body": {
+ "nativeSrc": "6040:2820:42",
+ "nodeType": "YulBlock",
+ "src": "6040:2820:42",
+ "statements": [
+ {
+ "nativeSrc": "6058:36:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6058:36:42",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6079:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6079:4:42"
+ },
+ {
+ "name": "pPairing",
+ "nativeSrc": "6085:8:42",
+ "nodeType": "YulIdentifier",
+ "src": "6085:8:42"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6075:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6075:3:42"
+ },
+ "nativeSrc": "6075:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6075:19:42"
+ },
+ "variables": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "6062:9:42",
+ "nodeType": "YulTypedName",
+ "src": "6062:9:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6111:26:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6111:26:42",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6127:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6127:4:42"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "6133:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6133:3:42"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6123:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6123:3:42"
+ },
+ "nativeSrc": "6123:14:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6123:14:42"
+ },
+ "variables": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6115:4:42",
+ "nodeType": "YulTypedName",
+ "src": "6115:4:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6162:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6162:4:42"
+ },
+ {
+ "name": "IC0x",
+ "nativeSrc": "6168:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6168:4:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6155:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "6155:6:42"
+ },
+ "nativeSrc": "6155:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6155:18:42"
+ },
+ "nativeSrc": "6155:18:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6155:18:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6201:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6201:4:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6207:2:42",
+ "nodeType": "YulLiteral",
+ "src": "6207:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6197:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6197:3:42"
+ },
+ "nativeSrc": "6197:13:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6197:13:42"
+ },
+ {
+ "name": "IC0y",
+ "nativeSrc": "6212:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6212:4:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6190:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "6190:6:42"
+ },
+ "nativeSrc": "6190:27:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6190:27:42"
+ },
+ "nativeSrc": "6190:27:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6190:27:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6318:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6318:4:42"
+ },
+ {
+ "name": "IC1x",
+ "nativeSrc": "6324:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6324:4:42"
+ },
+ {
+ "name": "IC1y",
+ "nativeSrc": "6330:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6330:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6353:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6353:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6365:1:42",
+ "nodeType": "YulLiteral",
+ "src": "6365:1:42",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6349:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6349:3:42"
+ },
+ "nativeSrc": "6349:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6349:18:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6336:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6336:12:42"
+ },
+ "nativeSrc": "6336:32:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6336:32:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6307:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6307:10:42"
+ },
+ "nativeSrc": "6307:62:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6307:62:42"
+ },
+ "nativeSrc": "6307:62:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6307:62:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6414:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6414:4:42"
+ },
+ {
+ "name": "IC2x",
+ "nativeSrc": "6420:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6420:4:42"
+ },
+ {
+ "name": "IC2y",
+ "nativeSrc": "6426:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6426:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6449:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6449:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6461:2:42",
+ "nodeType": "YulLiteral",
+ "src": "6461:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6445:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6445:3:42"
+ },
+ "nativeSrc": "6445:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6445:19:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6432:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6432:12:42"
+ },
+ "nativeSrc": "6432:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6432:33:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6403:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6403:10:42"
+ },
+ "nativeSrc": "6403:63:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6403:63:42"
+ },
+ "nativeSrc": "6403:63:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6403:63:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6511:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6511:4:42"
+ },
+ {
+ "name": "IC3x",
+ "nativeSrc": "6517:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6517:4:42"
+ },
+ {
+ "name": "IC3y",
+ "nativeSrc": "6523:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6523:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6546:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6546:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6558:2:42",
+ "nodeType": "YulLiteral",
+ "src": "6558:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6542:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6542:3:42"
+ },
+ "nativeSrc": "6542:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6542:19:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6529:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6529:12:42"
+ },
+ "nativeSrc": "6529:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6529:33:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6500:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6500:10:42"
+ },
+ "nativeSrc": "6500:63:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6500:63:42"
+ },
+ "nativeSrc": "6500:63:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6500:63:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6608:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6608:4:42"
+ },
+ {
+ "name": "IC4x",
+ "nativeSrc": "6614:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6614:4:42"
+ },
+ {
+ "name": "IC4y",
+ "nativeSrc": "6620:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6620:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6643:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6643:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6655:2:42",
+ "nodeType": "YulLiteral",
+ "src": "6655:2:42",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6639:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6639:3:42"
+ },
+ "nativeSrc": "6639:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6639:19:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6626:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6626:12:42"
+ },
+ "nativeSrc": "6626:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6626:33:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6597:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6597:10:42"
+ },
+ "nativeSrc": "6597:63:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6597:63:42"
+ },
+ "nativeSrc": "6597:63:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6597:63:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6705:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6705:4:42"
+ },
+ {
+ "name": "IC5x",
+ "nativeSrc": "6711:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6711:4:42"
+ },
+ {
+ "name": "IC5y",
+ "nativeSrc": "6717:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6717:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6740:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6740:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6752:3:42",
+ "nodeType": "YulLiteral",
+ "src": "6752:3:42",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6736:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6736:3:42"
+ },
+ "nativeSrc": "6736:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6736:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6723:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6723:12:42"
+ },
+ "nativeSrc": "6723:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6723:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6694:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6694:10:42"
+ },
+ "nativeSrc": "6694:64:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6694:64:42"
+ },
+ "nativeSrc": "6694:64:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6694:64:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6803:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6803:4:42"
+ },
+ {
+ "name": "IC6x",
+ "nativeSrc": "6809:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6809:4:42"
+ },
+ {
+ "name": "IC6y",
+ "nativeSrc": "6815:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6815:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6838:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6838:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6850:3:42",
+ "nodeType": "YulLiteral",
+ "src": "6850:3:42",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6834:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6834:3:42"
+ },
+ "nativeSrc": "6834:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6834:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6821:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6821:12:42"
+ },
+ "nativeSrc": "6821:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6821:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6792:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6792:10:42"
+ },
+ "nativeSrc": "6792:64:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6792:64:42"
+ },
+ "nativeSrc": "6792:64:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6792:64:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6901:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6901:4:42"
+ },
+ {
+ "name": "IC7x",
+ "nativeSrc": "6907:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6907:4:42"
+ },
+ {
+ "name": "IC7y",
+ "nativeSrc": "6913:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6913:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6936:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6936:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6948:3:42",
+ "nodeType": "YulLiteral",
+ "src": "6948:3:42",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6932:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "6932:3:42"
+ },
+ "nativeSrc": "6932:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6932:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6919:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "6919:12:42"
+ },
+ "nativeSrc": "6919:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6919:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6890:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6890:10:42"
+ },
+ "nativeSrc": "6890:64:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6890:64:42"
+ },
+ "nativeSrc": "6890:64:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6890:64:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6999:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "6999:4:42"
+ },
+ {
+ "name": "IC8x",
+ "nativeSrc": "7005:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "7005:4:42"
+ },
+ {
+ "name": "IC8y",
+ "nativeSrc": "7011:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "7011:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "7034:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "7034:10:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7046:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7046:3:42",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7030:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7030:3:42"
+ },
+ "nativeSrc": "7030:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7030:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7017:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7017:12:42"
+ },
+ "nativeSrc": "7017:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7017:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6988:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "6988:10:42"
+ },
+ "nativeSrc": "6988:64:42",
+ "nodeType": "YulFunctionCall",
+ "src": "6988:64:42"
+ },
+ "nativeSrc": "6988:64:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "6988:64:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7116:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7116:9:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7140:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7140:2:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7127:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7127:12:42"
+ },
+ "nativeSrc": "7127:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7127:16:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7109:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7109:6:42"
+ },
+ "nativeSrc": "7109:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7109:35:42"
+ },
+ "nativeSrc": "7109:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7109:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7172:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7172:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7183:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7183:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7168:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7168:3:42"
+ },
+ "nativeSrc": "7168:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7168:18:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "q",
+ "nativeSrc": "7196:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "7196:1:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7216:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7216:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7220:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7220:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7212:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7212:3:42"
+ },
+ "nativeSrc": "7212:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7212:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7199:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7199:12:42"
+ },
+ "nativeSrc": "7199:25:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7199:25:42"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7192:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7192:3:42"
+ },
+ "nativeSrc": "7192:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7192:33:42"
+ },
+ {
+ "name": "q",
+ "nativeSrc": "7227:1:42",
+ "nodeType": "YulIdentifier",
+ "src": "7227:1:42"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "7188:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7188:3:42"
+ },
+ "nativeSrc": "7188:41:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7188:41:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7161:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7161:6:42"
+ },
+ "nativeSrc": "7161:69:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7161:69:42"
+ },
+ "nativeSrc": "7161:69:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7161:69:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7280:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7280:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7291:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7291:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7276:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7276:3:42"
+ },
+ "nativeSrc": "7276:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7276:18:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7309:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7309:2:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7296:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7296:12:42"
+ },
+ "nativeSrc": "7296:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7296:16:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7269:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7269:6:42"
+ },
+ "nativeSrc": "7269:44:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7269:44:42"
+ },
+ "nativeSrc": "7269:44:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7269:44:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7341:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7341:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7352:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7352:2:42",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7337:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7337:3:42"
+ },
+ "nativeSrc": "7337:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7337:18:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7374:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7374:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7378:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7378:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7370:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7370:3:42"
+ },
+ "nativeSrc": "7370:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7370:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7357:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7357:12:42"
+ },
+ "nativeSrc": "7357:25:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7357:25:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7330:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7330:6:42"
+ },
+ "nativeSrc": "7330:53:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7330:53:42"
+ },
+ "nativeSrc": "7330:53:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:53:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7411:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7411:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7422:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7422:3:42",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7407:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7407:3:42"
+ },
+ "nativeSrc": "7407:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7407:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7445:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7445:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7449:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7449:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7441:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7441:3:42"
+ },
+ "nativeSrc": "7441:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7441:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7428:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7428:12:42"
+ },
+ "nativeSrc": "7428:25:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7428:25:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7400:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7400:6:42"
+ },
+ "nativeSrc": "7400:54:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7400:54:42"
+ },
+ "nativeSrc": "7400:54:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7400:54:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7482:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7482:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7493:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7493:3:42",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7478:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7478:3:42"
+ },
+ "nativeSrc": "7478:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7478:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7516:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "7516:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7520:2:42",
+ "nodeType": "YulLiteral",
+ "src": "7520:2:42",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7512:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7512:3:42"
+ },
+ "nativeSrc": "7512:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7512:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7499:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "7499:12:42"
+ },
+ "nativeSrc": "7499:25:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7499:25:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7471:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7471:6:42"
+ },
+ "nativeSrc": "7471:54:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7471:54:42"
+ },
+ "nativeSrc": "7471:54:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7471:54:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7580:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7580:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7591:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7591:3:42",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7576:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7576:3:42"
+ },
+ "nativeSrc": "7576:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7576:19:42"
+ },
+ {
+ "name": "alphax",
+ "nativeSrc": "7597:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7597:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7569:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7569:6:42"
+ },
+ "nativeSrc": "7569:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7569:35:42"
+ },
+ "nativeSrc": "7569:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7569:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7632:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7632:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7643:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7643:3:42",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7628:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7628:3:42"
+ },
+ "nativeSrc": "7628:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7628:19:42"
+ },
+ {
+ "name": "alphay",
+ "nativeSrc": "7649:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7649:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7621:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7621:6:42"
+ },
+ "nativeSrc": "7621:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7621:35:42"
+ },
+ "nativeSrc": "7621:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7621:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7710:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7710:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7721:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7721:3:42",
+ "type": "",
+ "value": "256"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7706:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7706:3:42"
+ },
+ "nativeSrc": "7706:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7706:19:42"
+ },
+ {
+ "name": "betax1",
+ "nativeSrc": "7727:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7727:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7699:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7699:6:42"
+ },
+ "nativeSrc": "7699:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7699:35:42"
+ },
+ "nativeSrc": "7699:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7699:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7762:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7762:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7773:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7773:3:42",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7758:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7758:3:42"
+ },
+ "nativeSrc": "7758:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7758:19:42"
+ },
+ {
+ "name": "betax2",
+ "nativeSrc": "7779:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7779:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7751:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7751:6:42"
+ },
+ "nativeSrc": "7751:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7751:35:42"
+ },
+ "nativeSrc": "7751:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7751:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7814:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7814:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7825:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7825:3:42",
+ "type": "",
+ "value": "320"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7810:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7810:3:42"
+ },
+ "nativeSrc": "7810:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7810:19:42"
+ },
+ {
+ "name": "betay1",
+ "nativeSrc": "7831:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7831:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7803:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7803:6:42"
+ },
+ "nativeSrc": "7803:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7803:35:42"
+ },
+ "nativeSrc": "7803:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7803:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7866:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7866:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7877:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7877:3:42",
+ "type": "",
+ "value": "352"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7862:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7862:3:42"
+ },
+ "nativeSrc": "7862:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7862:19:42"
+ },
+ {
+ "name": "betay2",
+ "nativeSrc": "7883:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7883:6:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7855:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7855:6:42"
+ },
+ "nativeSrc": "7855:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7855:35:42"
+ },
+ "nativeSrc": "7855:35:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7855:35:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7943:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "7943:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7954:3:42",
+ "nodeType": "YulLiteral",
+ "src": "7954:3:42",
+ "type": "",
+ "value": "384"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7939:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7939:3:42"
+ },
+ "nativeSrc": "7939:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7939:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "7970:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "7970:4:42"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "7976:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7976:3:42"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7966:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "7966:3:42"
+ },
+ "nativeSrc": "7966:14:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7966:14:42"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7960:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "7960:5:42"
+ },
+ "nativeSrc": "7960:21:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7960:21:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7932:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7932:6:42"
+ },
+ "nativeSrc": "7932:50:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7932:50:42"
+ },
+ "nativeSrc": "7932:50:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7932:50:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8010:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8010:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8021:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8021:3:42",
+ "type": "",
+ "value": "416"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8006:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8006:3:42"
+ },
+ "nativeSrc": "8006:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8006:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8037:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "8037:4:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pVk",
+ "nativeSrc": "8047:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8047:3:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8052:2:42",
+ "nodeType": "YulLiteral",
+ "src": "8052:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8043:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8043:3:42"
+ },
+ "nativeSrc": "8043:12:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8043:12:42"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8033:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8033:3:42"
+ },
+ "nativeSrc": "8033:23:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8033:23:42"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8027:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "8027:5:42"
+ },
+ "nativeSrc": "8027:30:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8027:30:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7999:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "7999:6:42"
+ },
+ "nativeSrc": "7999:59:42",
+ "nodeType": "YulFunctionCall",
+ "src": "7999:59:42"
+ },
+ "nativeSrc": "7999:59:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "7999:59:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8114:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8114:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8125:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8125:3:42",
+ "type": "",
+ "value": "448"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8110:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8110:3:42"
+ },
+ "nativeSrc": "8110:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8110:19:42"
+ },
+ {
+ "name": "gammax1",
+ "nativeSrc": "8131:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8131:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8103:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8103:6:42"
+ },
+ "nativeSrc": "8103:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8103:36:42"
+ },
+ "nativeSrc": "8103:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8103:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8167:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8167:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8178:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8178:3:42",
+ "type": "",
+ "value": "480"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8163:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8163:3:42"
+ },
+ "nativeSrc": "8163:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8163:19:42"
+ },
+ {
+ "name": "gammax2",
+ "nativeSrc": "8184:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8184:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8156:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8156:6:42"
+ },
+ "nativeSrc": "8156:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8156:36:42"
+ },
+ "nativeSrc": "8156:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8156:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8220:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8220:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8231:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8231:3:42",
+ "type": "",
+ "value": "512"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8216:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8216:3:42"
+ },
+ "nativeSrc": "8216:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8216:19:42"
+ },
+ {
+ "name": "gammay1",
+ "nativeSrc": "8237:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8237:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8209:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8209:6:42"
+ },
+ "nativeSrc": "8209:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8209:36:42"
+ },
+ "nativeSrc": "8209:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8209:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8273:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8273:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8284:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8284:3:42",
+ "type": "",
+ "value": "544"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8269:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8269:3:42"
+ },
+ "nativeSrc": "8269:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8269:19:42"
+ },
+ {
+ "name": "gammay2",
+ "nativeSrc": "8290:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8290:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8262:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8262:6:42"
+ },
+ "nativeSrc": "8262:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8262:36:42"
+ },
+ "nativeSrc": "8262:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8262:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8348:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8348:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8359:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8359:3:42",
+ "type": "",
+ "value": "576"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8344:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8344:3:42"
+ },
+ "nativeSrc": "8344:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8344:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8378:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "8378:2:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8365:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "8365:12:42"
+ },
+ "nativeSrc": "8365:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8365:16:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8337:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8337:6:42"
+ },
+ "nativeSrc": "8337:45:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8337:45:42"
+ },
+ "nativeSrc": "8337:45:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8337:45:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8410:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8410:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8421:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8421:3:42",
+ "type": "",
+ "value": "608"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8406:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8406:3:42"
+ },
+ "nativeSrc": "8406:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8406:19:42"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8444:2:42",
+ "nodeType": "YulIdentifier",
+ "src": "8444:2:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8448:2:42",
+ "nodeType": "YulLiteral",
+ "src": "8448:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8440:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8440:3:42"
+ },
+ "nativeSrc": "8440:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8440:11:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8427:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "8427:12:42"
+ },
+ "nativeSrc": "8427:25:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8427:25:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8399:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8399:6:42"
+ },
+ "nativeSrc": "8399:54:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8399:54:42"
+ },
+ "nativeSrc": "8399:54:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8399:54:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8508:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8508:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8519:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8519:3:42",
+ "type": "",
+ "value": "640"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8504:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8504:3:42"
+ },
+ "nativeSrc": "8504:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8504:19:42"
+ },
+ {
+ "name": "deltax1",
+ "nativeSrc": "8525:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8525:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8497:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8497:6:42"
+ },
+ "nativeSrc": "8497:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8497:36:42"
+ },
+ "nativeSrc": "8497:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8497:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8561:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8561:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8572:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8572:3:42",
+ "type": "",
+ "value": "672"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8557:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8557:3:42"
+ },
+ "nativeSrc": "8557:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8557:19:42"
+ },
+ {
+ "name": "deltax2",
+ "nativeSrc": "8578:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8578:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8550:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8550:6:42"
+ },
+ "nativeSrc": "8550:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8550:36:42"
+ },
+ "nativeSrc": "8550:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8550:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8614:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8614:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8625:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8625:3:42",
+ "type": "",
+ "value": "704"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8610:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8610:3:42"
+ },
+ "nativeSrc": "8610:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8610:19:42"
+ },
+ {
+ "name": "deltay1",
+ "nativeSrc": "8631:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8631:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8603:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8603:6:42"
+ },
+ "nativeSrc": "8603:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8603:36:42"
+ },
+ "nativeSrc": "8603:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8603:36:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8667:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8667:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8678:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8678:3:42",
+ "type": "",
+ "value": "736"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8663:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8663:3:42"
+ },
+ "nativeSrc": "8663:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8663:19:42"
+ },
+ {
+ "name": "deltay2",
+ "nativeSrc": "8684:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8684:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8656:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8656:6:42"
+ },
+ "nativeSrc": "8656:36:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8656:36:42"
+ },
+ "nativeSrc": "8656:36:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8656:36:42"
+ },
+ {
+ "nativeSrc": "8711:79:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8711:79:42",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "8741:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8741:3:42"
+ },
+ "nativeSrc": "8741:5:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8741:5:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8748:4:42",
+ "nodeType": "YulLiteral",
+ "src": "8748:4:42",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8737:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8737:3:42"
+ },
+ "nativeSrc": "8737:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8737:16:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8755:1:42",
+ "nodeType": "YulLiteral",
+ "src": "8755:1:42",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8758:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8758:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8769:3:42",
+ "nodeType": "YulLiteral",
+ "src": "8769:3:42",
+ "type": "",
+ "value": "768"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8774:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8774:9:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8785:4:42",
+ "nodeType": "YulLiteral",
+ "src": "8785:4:42",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "8726:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "8726:10:42"
+ },
+ "nativeSrc": "8726:64:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8726:64:42"
+ },
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "8715:7:42",
+ "nodeType": "YulTypedName",
+ "src": "8715:7:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8808:38:42",
+ "nodeType": "YulAssignment",
+ "src": "8808:38:42",
+ "value": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "8820:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "8820:7:42"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8835:9:42",
+ "nodeType": "YulIdentifier",
+ "src": "8835:9:42"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8829:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "8829:5:42"
+ },
+ "nativeSrc": "8829:16:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8829:16:42"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8816:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8816:3:42"
+ },
+ "nativeSrc": "8816:30:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8816:30:42"
+ },
+ "variableNames": [
+ {
+ "name": "isOk",
+ "nativeSrc": "8808:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "8808:4:42"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checkPairing",
+ "nativeSrc": "5980:2880:42",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pA",
+ "nativeSrc": "6002:2:42",
+ "nodeType": "YulTypedName",
+ "src": "6002:2:42",
+ "type": ""
+ },
+ {
+ "name": "pB",
+ "nativeSrc": "6006:2:42",
+ "nodeType": "YulTypedName",
+ "src": "6006:2:42",
+ "type": ""
+ },
+ {
+ "name": "pC",
+ "nativeSrc": "6010:2:42",
+ "nodeType": "YulTypedName",
+ "src": "6010:2:42",
+ "type": ""
+ },
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6014:10:42",
+ "nodeType": "YulTypedName",
+ "src": "6014:10:42",
+ "type": ""
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "6026:4:42",
+ "nodeType": "YulTypedName",
+ "src": "6026:4:42",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "isOk",
+ "nativeSrc": "6035:4:42",
+ "nodeType": "YulTypedName",
+ "src": "6035:4:42",
+ "type": ""
+ }
+ ],
+ "src": "5980:2880:42"
+ },
+ {
+ "nativeSrc": "8874:23:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8874:23:42",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8892:4:42",
+ "nodeType": "YulLiteral",
+ "src": "8892:4:42",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8886:5:42",
+ "nodeType": "YulIdentifier",
+ "src": "8886:5:42"
+ },
+ "nativeSrc": "8886:11:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8886:11:42"
+ },
+ "variables": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8878:4:42",
+ "nodeType": "YulTypedName",
+ "src": "8878:4:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8917:4:42",
+ "nodeType": "YulLiteral",
+ "src": "8917:4:42",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8927:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "8927:4:42"
+ },
+ {
+ "name": "pLastMem",
+ "nativeSrc": "8933:8:42",
+ "nodeType": "YulIdentifier",
+ "src": "8933:8:42"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8923:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "8923:3:42"
+ },
+ "nativeSrc": "8923:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8923:19:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8910:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "8910:6:42"
+ },
+ "nativeSrc": "8910:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "8910:33:42"
+ },
+ "nativeSrc": "8910:33:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "8910:33:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9049:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9049:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9062:1:42",
+ "nodeType": "YulLiteral",
+ "src": "9062:1:42",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9045:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9045:3:42"
+ },
+ "nativeSrc": "9045:19:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9045:19:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9032:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9032:12:42"
+ },
+ "nativeSrc": "9032:33:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9032:33:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9021:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9021:10:42"
+ },
+ "nativeSrc": "9021:45:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9021:45:42"
+ },
+ "nativeSrc": "9021:45:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9021:45:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9120:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9120:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9133:2:42",
+ "nodeType": "YulLiteral",
+ "src": "9133:2:42",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9116:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9116:3:42"
+ },
+ "nativeSrc": "9116:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9116:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9103:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9103:12:42"
+ },
+ "nativeSrc": "9103:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9103:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9092:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9092:10:42"
+ },
+ "nativeSrc": "9092:46:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9092:46:42"
+ },
+ "nativeSrc": "9092:46:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9092:46:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9192:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9192:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9205:2:42",
+ "nodeType": "YulLiteral",
+ "src": "9205:2:42",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9188:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9188:3:42"
+ },
+ "nativeSrc": "9188:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9188:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9175:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9175:12:42"
+ },
+ "nativeSrc": "9175:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9175:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9164:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9164:10:42"
+ },
+ "nativeSrc": "9164:46:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9164:46:42"
+ },
+ "nativeSrc": "9164:46:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9164:46:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9264:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9264:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9277:2:42",
+ "nodeType": "YulLiteral",
+ "src": "9277:2:42",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9260:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9260:3:42"
+ },
+ "nativeSrc": "9260:20:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9260:20:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9247:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9247:12:42"
+ },
+ "nativeSrc": "9247:34:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9247:34:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9236:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9236:10:42"
+ },
+ "nativeSrc": "9236:46:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9236:46:42"
+ },
+ "nativeSrc": "9236:46:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9236:46:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9336:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9336:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9349:3:42",
+ "nodeType": "YulLiteral",
+ "src": "9349:3:42",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9332:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9332:3:42"
+ },
+ "nativeSrc": "9332:21:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9332:21:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9319:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9319:12:42"
+ },
+ "nativeSrc": "9319:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9319:35:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9308:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9308:10:42"
+ },
+ "nativeSrc": "9308:47:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9308:47:42"
+ },
+ "nativeSrc": "9308:47:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9308:47:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9409:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9409:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9422:3:42",
+ "nodeType": "YulLiteral",
+ "src": "9422:3:42",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9405:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9405:3:42"
+ },
+ "nativeSrc": "9405:21:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9405:21:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9392:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9392:12:42"
+ },
+ "nativeSrc": "9392:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9392:35:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9381:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9381:10:42"
+ },
+ "nativeSrc": "9381:47:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9381:47:42"
+ },
+ "nativeSrc": "9381:47:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9381:47:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9482:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9482:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9495:3:42",
+ "nodeType": "YulLiteral",
+ "src": "9495:3:42",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9478:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9478:3:42"
+ },
+ "nativeSrc": "9478:21:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9478:21:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9465:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9465:12:42"
+ },
+ "nativeSrc": "9465:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9465:35:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9454:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9454:10:42"
+ },
+ "nativeSrc": "9454:47:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9454:47:42"
+ },
+ "nativeSrc": "9454:47:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9454:47:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9555:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9555:11:42"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9568:3:42",
+ "nodeType": "YulLiteral",
+ "src": "9568:3:42",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9551:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9551:3:42"
+ },
+ "nativeSrc": "9551:21:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9551:21:42"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9538:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9538:12:42"
+ },
+ "nativeSrc": "9538:35:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9538:35:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9527:10:42",
+ "nodeType": "YulIdentifier",
+ "src": "9527:10:42"
+ },
+ "nativeSrc": "9527:47:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9527:47:42"
+ },
+ "nativeSrc": "9527:47:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9527:47:42"
+ },
+ {
+ "nativeSrc": "9641:61:42",
+ "nodeType": "YulVariableDeclaration",
+ "src": "9641:61:42",
+ "value": {
+ "arguments": [
+ {
+ "name": "_pA",
+ "nativeSrc": "9669:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9669:3:42"
+ },
+ {
+ "name": "_pB",
+ "nativeSrc": "9674:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9674:3:42"
+ },
+ {
+ "name": "_pC",
+ "nativeSrc": "9679:3:42",
+ "nodeType": "YulIdentifier",
+ "src": "9679:3:42"
+ },
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9684:11:42",
+ "nodeType": "YulIdentifier",
+ "src": "9684:11:42"
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "9697:4:42",
+ "nodeType": "YulIdentifier",
+ "src": "9697:4:42"
+ }
+ ],
+ "functionName": {
+ "name": "checkPairing",
+ "nativeSrc": "9656:12:42",
+ "nodeType": "YulIdentifier",
+ "src": "9656:12:42"
+ },
+ "nativeSrc": "9656:46:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9656:46:42"
+ },
+ "variables": [
+ {
+ "name": "isValid",
+ "nativeSrc": "9645:7:42",
+ "nodeType": "YulTypedName",
+ "src": "9645:7:42",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9723:1:42",
+ "nodeType": "YulLiteral",
+ "src": "9723:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "isValid",
+ "nativeSrc": "9726:7:42",
+ "nodeType": "YulIdentifier",
+ "src": "9726:7:42"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "9716:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "9716:6:42"
+ },
+ "nativeSrc": "9716:18:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9716:18:42"
+ },
+ "nativeSrc": "9716:18:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9716:18:42"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9755:1:42",
+ "nodeType": "YulLiteral",
+ "src": "9755:1:42",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9758:4:42",
+ "nodeType": "YulLiteral",
+ "src": "9758:4:42",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "9748:6:42",
+ "nodeType": "YulIdentifier",
+ "src": "9748:6:42"
+ },
+ "nativeSrc": "9748:15:42",
+ "nodeType": "YulFunctionCall",
+ "src": "9748:15:42"
+ },
+ "nativeSrc": "9748:15:42",
+ "nodeType": "YulExpressionStatement",
+ "src": "9748:15:42"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 17871,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6168:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17874,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6212:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17877,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6324:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17880,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6330:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17883,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6420:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17886,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6426:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17889,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6517:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17892,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6523:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17895,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6614:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17898,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6620:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17901,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6711:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17904,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6717:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17907,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6809:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17910,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6815:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17913,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6907:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17916,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6913:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17919,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7005:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17922,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7011:4:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17935,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9669:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17941,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9674:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17945,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9679:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9049:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9120:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9192:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9264:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9336:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9409:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9482:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9555:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17949,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9684:11:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17829,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7597:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17832,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7649:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17835,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7727:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17838,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7779:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17841,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7831:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17844,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7883:6:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17859,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8525:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17862,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8578:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17865,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8631:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17868,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8684:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17847,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8131:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17850,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8184:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17853,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8237:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17856,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8290:7:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17931,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8933:8:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17928,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6085:8:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17925,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6133:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17925,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7976:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17925,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8047:3:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17826,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7196:1:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17826,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7227:1:42",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17823,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5018:1:42",
+ "valueSize": 1
+ }
+ ],
+ "id": 17954,
+ "nodeType": "InlineAssembly",
+ "src": "4938:4836:42"
+ }
+ ]
+ },
+ "functionSelector": "c9219a7a",
+ "id": 17956,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "4790:11:42",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 17950,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17935,
+ "mutability": "mutable",
+ "name": "_pA",
+ "nameLocation": "4819:3:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17956,
+ "src": "4802:20:42",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17932,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4802:4:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17934,
+ "length": {
+ "hexValue": "32",
+ "id": 17933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4807:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4802:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17941,
+ "mutability": "mutable",
+ "name": "_pB",
+ "nameLocation": "4844:3:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17956,
+ "src": "4824:23:42",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 17936,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4824:4:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17938,
+ "length": {
+ "hexValue": "32",
+ "id": 17937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4829:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4824:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 17940,
+ "length": {
+ "hexValue": "32",
+ "id": 17939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4832:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4824:10:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17945,
+ "mutability": "mutable",
+ "name": "_pC",
+ "nameLocation": "4866:3:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17956,
+ "src": "4849:20:42",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17942,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4849:4:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17944,
+ "length": {
+ "hexValue": "32",
+ "id": 17943,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4854:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4849:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17949,
+ "mutability": "mutable",
+ "name": "_pubSignals",
+ "nameLocation": "4888:11:42",
+ "nodeType": "VariableDeclaration",
+ "scope": 17956,
+ "src": "4871:28:42",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 17946,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4871:4:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 17948,
+ "length": {
+ "hexValue": "38",
+ "id": 17947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4876:1:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4871:7:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4801:99:42"
+ },
+ "returnParameters": {
+ "id": 17953,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 17952,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 17956,
+ "src": "4922:4:42",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 17951,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4922:4:42",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4921:6:42"
+ },
+ "scope": 17957,
+ "src": "4781:5000:42",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 17958,
+ "src": "831:8953:42",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "798:8987:42"
+ },
+ "id": 42
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha384.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha384.sol",
+ "exportedSymbols": {
+ "Verifier_idcard_sha384": [
+ 18096
+ ]
+ },
+ "id": 18097,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 17959,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "798:31:43"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Verifier_idcard_sha384",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 18096,
+ "linearizedBaseContracts": [
+ 18096
+ ],
+ "name": "Verifier_idcard_sha384",
+ "nameLocation": "840:22:43",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 17962,
+ "mutability": "constant",
+ "name": "r",
+ "nameLocation": "911:1:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "894:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17960,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137",
+ "id": 17961,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "918:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...5617"
+ },
+ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17965,
+ "mutability": "constant",
+ "name": "q",
+ "nameLocation": "1041:1:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1024:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17963,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1024:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833",
+ "id": 17964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1047:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...8583"
+ },
+ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17968,
+ "mutability": "constant",
+ "name": "alphax",
+ "nameLocation": "1177:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1160:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17966,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1160:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432",
+ "id": 17967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1187:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1",
+ "typeString": "int_const 2049...(69 digits omitted)...3042"
+ },
+ "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17971,
+ "mutability": "constant",
+ "name": "alphay",
+ "nameLocation": "1287:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1270:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17969,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1270:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538",
+ "id": 17970,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1297:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1",
+ "typeString": "int_const 9383...(68 digits omitted)...5958"
+ },
+ "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17974,
+ "mutability": "constant",
+ "name": "betax1",
+ "nameLocation": "1396:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1379:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17972,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1379:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332",
+ "id": 17973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1406:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1",
+ "typeString": "int_const 4252...(68 digits omitted)...7132"
+ },
+ "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17977,
+ "mutability": "constant",
+ "name": "betax2",
+ "nameLocation": "1505:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1488:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17975,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1488:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331",
+ "id": 17976,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1515:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1",
+ "typeString": "int_const 6375...(68 digits omitted)...8731"
+ },
+ "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17980,
+ "mutability": "constant",
+ "name": "betay1",
+ "nameLocation": "1614:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1597:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17978,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1597:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739",
+ "id": 17979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1624:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1",
+ "typeString": "int_const 2184...(69 digits omitted)...6679"
+ },
+ "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17983,
+ "mutability": "constant",
+ "name": "betay2",
+ "nameLocation": "1724:6:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1707:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17981,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1707:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536",
+ "id": 17982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1734:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1",
+ "typeString": "int_const 1050...(69 digits omitted)...6856"
+ },
+ "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17986,
+ "mutability": "constant",
+ "name": "gammax1",
+ "nameLocation": "1834:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1817:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17984,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1817:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334",
+ "id": 17985,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1844:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1",
+ "typeString": "int_const 1155...(69 digits omitted)...5634"
+ },
+ "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17989,
+ "mutability": "constant",
+ "name": "gammax2",
+ "nameLocation": "1944:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "1927:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17987,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1927:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831",
+ "id": 17988,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1954:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1",
+ "typeString": "int_const 1085...(69 digits omitted)...2781"
+ },
+ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17992,
+ "mutability": "constant",
+ "name": "gammay1",
+ "nameLocation": "2054:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2037:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17990,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2037:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331",
+ "id": 17991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2064:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1",
+ "typeString": "int_const 4082...(68 digits omitted)...3531"
+ },
+ "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17995,
+ "mutability": "constant",
+ "name": "gammay2",
+ "nameLocation": "2163:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2146:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17993,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2146:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330",
+ "id": 17994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2173:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1",
+ "typeString": "int_const 8495...(68 digits omitted)...1930"
+ },
+ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 17998,
+ "mutability": "constant",
+ "name": "deltax1",
+ "nameLocation": "2272:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2255:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17996,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2255:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139363535323637383632373033323332303133383239353538343335313435303435383730383433393736393330333137353930333032383234303635313436383433333936373933323837",
+ "id": 17997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2282:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19655267862703232013829558435145045870843976930317590302824065146843396793287_by_1",
+ "typeString": "int_const 1965...(69 digits omitted)...3287"
+ },
+ "value": "19655267862703232013829558435145045870843976930317590302824065146843396793287"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18001,
+ "mutability": "constant",
+ "name": "deltax2",
+ "nameLocation": "2382:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2365:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 17999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2365:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3134313935353439313235373130353531323834363036313435313735373337353330343738353238373433393236383939353731303233323630383833323535373136373631353934333935",
+ "id": 18000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2392:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14195549125710551284606145175737530478528743926899571023260883255716761594395_by_1",
+ "typeString": "int_const 1419...(69 digits omitted)...4395"
+ },
+ "value": "14195549125710551284606145175737530478528743926899571023260883255716761594395"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18004,
+ "mutability": "constant",
+ "name": "deltay1",
+ "nameLocation": "2492:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2475:104:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18002,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2475:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132333531353036333531373939383139323639373033333039343439363330363531313935373432373533323830353334383335303737313035333839353339343631373135333732373736",
+ "id": 18003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2502:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12351506351799819269703309449630651195742753280534835077105389539461715372776_by_1",
+ "typeString": "int_const 1235...(69 digits omitted)...2776"
+ },
+ "value": "12351506351799819269703309449630651195742753280534835077105389539461715372776"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18007,
+ "mutability": "constant",
+ "name": "deltay2",
+ "nameLocation": "2602:7:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2585:103:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18005,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2585:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37373537343637323332323033343439333939393332393038343233343036303037323435323633333532383238343131383830323039363433323536303537313834363533303137393637",
+ "id": 18006,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2612:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7757467232203449399932908423406007245263352828411880209643256057184653017967_by_1",
+ "typeString": "int_const 7757...(68 digits omitted)...7967"
+ },
+ "value": "7757467232203449399932908423406007245263352828411880209643256057184653017967"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18010,
+ "mutability": "constant",
+ "name": "IC0x",
+ "nameLocation": "2717:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2700:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18008,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2700:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131323730313838343432363135313130303534353932393035363835333033383636303730323131333731353631383935313532383238313238363133393739323438303535333038343330",
+ "id": 18009,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2724:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11270188442615110054592905685303866070211371561895152828128613979248055308430_by_1",
+ "typeString": "int_const 1127...(69 digits omitted)...8430"
+ },
+ "value": "11270188442615110054592905685303866070211371561895152828128613979248055308430"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18013,
+ "mutability": "constant",
+ "name": "IC0y",
+ "nameLocation": "2824:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2807:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18011,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2807:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3137303934383238303432303632353034363532363139323332393731343434343431323834363330393135313031373737303239343036393131353734323331393931353836333336373234",
+ "id": 18012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2831:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_17094828042062504652619232971444441284630915101777029406911574231991586336724_by_1",
+ "typeString": "int_const 1709...(69 digits omitted)...6724"
+ },
+ "value": "17094828042062504652619232971444441284630915101777029406911574231991586336724"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18016,
+ "mutability": "constant",
+ "name": "IC1x",
+ "nameLocation": "2936:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "2919:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18014,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2919:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138373531363931383439333830343334373539373432313233313532373932323339353036303833313531343938353633393333393734303932333039323430323835373334343337313838",
+ "id": 18015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2943:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18751691849380434759742123152792239506083151498563933974092309240285734437188_by_1",
+ "typeString": "int_const 1875...(69 digits omitted)...7188"
+ },
+ "value": "18751691849380434759742123152792239506083151498563933974092309240285734437188"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18019,
+ "mutability": "constant",
+ "name": "IC1y",
+ "nameLocation": "3043:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3026:98:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18017,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3026:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230303439363838333938393839363732383738363139313137353734353436393132313431303030373536313338343233323534383330363232303935353735363530323039353231",
+ "id": 18018,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3050:74:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20049688398989672878619117574546912141000756138423254830622095575650209521_by_1",
+ "typeString": "int_const 2004...(66 digits omitted)...9521"
+ },
+ "value": "20049688398989672878619117574546912141000756138423254830622095575650209521"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18022,
+ "mutability": "constant",
+ "name": "IC2x",
+ "nameLocation": "3152:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3135:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18020,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3135:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35393338333932333237333938333030383034393836353435303236353036313935373438363138303638363831343734353330343139363736383535333339303531373234333534363831",
+ "id": 18021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3159:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5938392327398300804986545026506195748618068681474530419676855339051724354681_by_1",
+ "typeString": "int_const 5938...(68 digits omitted)...4681"
+ },
+ "value": "5938392327398300804986545026506195748618068681474530419676855339051724354681"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18025,
+ "mutability": "constant",
+ "name": "IC2y",
+ "nameLocation": "3258:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3241:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18023,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3241:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343936313733323031393732303535333030343933303732393734373437373330343032303434373934363134303231303333393031323530303235383136303936353833353331343931",
+ "id": 18024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3265:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8496173201972055300493072974747730402044794614021033901250025816096583531491_by_1",
+ "typeString": "int_const 8496...(68 digits omitted)...1491"
+ },
+ "value": "8496173201972055300493072974747730402044794614021033901250025816096583531491"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18028,
+ "mutability": "constant",
+ "name": "IC3x",
+ "nameLocation": "3369:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3352:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18026,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3352:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138303030323332343835363035393533343439303638353838363935383932303730363936393032383037303634333935313437323731303538373632303037313035303139313236333334",
+ "id": 18027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3376:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18000232485605953449068588695892070696902807064395147271058762007105019126334_by_1",
+ "typeString": "int_const 1800...(69 digits omitted)...6334"
+ },
+ "value": "18000232485605953449068588695892070696902807064395147271058762007105019126334"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18031,
+ "mutability": "constant",
+ "name": "IC3y",
+ "nameLocation": "3476:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3459:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18029,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3459:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3133393233313535323731373431353232353339343034333235393636313233393337393730333635343434353337373235333733363535323535333838383533383837313431373938353632",
+ "id": 18030,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3483:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_13923155271741522539404325966123937970365444537725373655255388853887141798562_by_1",
+ "typeString": "int_const 1392...(69 digits omitted)...8562"
+ },
+ "value": "13923155271741522539404325966123937970365444537725373655255388853887141798562"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18034,
+ "mutability": "constant",
+ "name": "IC4x",
+ "nameLocation": "3588:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3571:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18032,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3571:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138303130343436383933313935353132353739373539363239333938383537383031303036303532393331393131353731363431353834363532313335383431373638393932303032363934",
+ "id": 18033,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3595:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18010446893195512579759629398857801006052931911571641584652135841768992002694_by_1",
+ "typeString": "int_const 1801...(69 digits omitted)...2694"
+ },
+ "value": "18010446893195512579759629398857801006052931911571641584652135841768992002694"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18037,
+ "mutability": "constant",
+ "name": "IC4y",
+ "nameLocation": "3695:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3678:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18035,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3678:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38323736363230323838323838383935333934303933353432353234333437393532363134333434353832383234303432383133333835313439363433333534323338393937383533343536",
+ "id": 18036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3702:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8276620288288895394093542524347952614344582824042813385149643354238997853456_by_1",
+ "typeString": "int_const 8276...(68 digits omitted)...3456"
+ },
+ "value": "8276620288288895394093542524347952614344582824042813385149643354238997853456"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18040,
+ "mutability": "constant",
+ "name": "IC5x",
+ "nameLocation": "3806:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3789:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18038,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3789:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31373732323030323230323033393136343431393338393938373639353230313137353432303136313938323738333635353238353232393832383934393932333832363230343334303530",
+ "id": 18039,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3813:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1772200220203916441938998769520117542016198278365528522982894992382620434050_by_1",
+ "typeString": "int_const 1772...(68 digits omitted)...4050"
+ },
+ "value": "1772200220203916441938998769520117542016198278365528522982894992382620434050"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18043,
+ "mutability": "constant",
+ "name": "IC5y",
+ "nameLocation": "3912:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "3895:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18041,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3895:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130373633323533323732353435373830303132323835353733363532373131383232383630353030393237333931383731353332353038383332333439313735373939373032393537383939",
+ "id": 18042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3919:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10763253272545780012285573652711822860500927391871532508832349175799702957899_by_1",
+ "typeString": "int_const 1076...(69 digits omitted)...7899"
+ },
+ "value": "10763253272545780012285573652711822860500927391871532508832349175799702957899"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18046,
+ "mutability": "constant",
+ "name": "IC6x",
+ "nameLocation": "4024:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4007:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18044,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4007:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32383435313636353630373739353130383330383335393934313138303530303431383236383230303634363538353733343233373433343333383030393236313831303839383630383636",
+ "id": 18045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4031:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2845166560779510830835994118050041826820064658573423743433800926181089860866_by_1",
+ "typeString": "int_const 2845...(68 digits omitted)...0866"
+ },
+ "value": "2845166560779510830835994118050041826820064658573423743433800926181089860866"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18049,
+ "mutability": "constant",
+ "name": "IC6y",
+ "nameLocation": "4130:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4113:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18047,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4113:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131323131353133343231313139323731313234313436343535383437353135393937383333373237383933373636353037353434373232383935323635313136383539373736343439373135",
+ "id": 18048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4137:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11211513421119271124146455847515997833727893766507544722895265116859776449715_by_1",
+ "typeString": "int_const 1121...(69 digits omitted)...9715"
+ },
+ "value": "11211513421119271124146455847515997833727893766507544722895265116859776449715"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18052,
+ "mutability": "constant",
+ "name": "IC7x",
+ "nameLocation": "4242:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4225:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18050,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4225:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230313434383435323638323232343232343935353339393037373230363537393738393433343435303635383936363233353836313233313939373333313539303438333236393939373630",
+ "id": 18051,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4249:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20144845268222422495539907720657978943445065896623586123199733159048326999760_by_1",
+ "typeString": "int_const 2014...(69 digits omitted)...9760"
+ },
+ "value": "20144845268222422495539907720657978943445065896623586123199733159048326999760"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18055,
+ "mutability": "constant",
+ "name": "IC7y",
+ "nameLocation": "4349:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4332:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18053,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4332:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139373138343633323838363538303830393139383033373332343439333030313030353639363037303334343438303232313738303835333837313030373936323538363236323938373834",
+ "id": 18054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4356:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19718463288658080919803732449300100569607034448022178085387100796258626298784_by_1",
+ "typeString": "int_const 1971...(69 digits omitted)...8784"
+ },
+ "value": "19718463288658080919803732449300100569607034448022178085387100796258626298784"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18058,
+ "mutability": "constant",
+ "name": "IC8x",
+ "nameLocation": "4461:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4444:100:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18056,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4444:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "37303538343832343831383035353534313338323035383531323939363739333039313638333136363533343131383234383337373235323336323730313832303537363834383930323339",
+ "id": 18057,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4468:76:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_7058482481805554138205851299679309168316653411824837725236270182057684890239_by_1",
+ "typeString": "int_const 7058...(68 digits omitted)...0239"
+ },
+ "value": "7058482481805554138205851299679309168316653411824837725236270182057684890239"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18061,
+ "mutability": "constant",
+ "name": "IC8y",
+ "nameLocation": "4567:4:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4550:101:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18059,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4550:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383936343735353730353738313938343535383130303135353136373930383930383435333132393336333132353839343935373236393639373030363031313639333739383533333738",
+ "id": 18060,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4574:77:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10896475570578198455810015516790890845312936312589495726969700601169379853378_by_1",
+ "typeString": "int_const 1089...(69 digits omitted)...3378"
+ },
+ "value": "10896475570578198455810015516790890845312936312589495726969700601169379853378"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18064,
+ "mutability": "constant",
+ "name": "pVk",
+ "nameLocation": "4699:3:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4683:23:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18062,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4683:6:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 18063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4705:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18067,
+ "mutability": "constant",
+ "name": "pPairing",
+ "nameLocation": "4728:8:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4712:30:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18065,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4712:6:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "313238",
+ "id": 18066,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4739:3:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18070,
+ "mutability": "constant",
+ "name": "pLastMem",
+ "nameLocation": "4765:8:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18096,
+ "src": "4749:30:43",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18068,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4749:6:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "383936",
+ "id": 18069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4776:3:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_896_by_1",
+ "typeString": "int_const 896"
+ },
+ "value": "896"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18094,
+ "nodeType": "Block",
+ "src": "4933:4853:43",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4952:4827:43",
+ "nodeType": "YulBlock",
+ "src": "4952:4827:43",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4989:140:43",
+ "nodeType": "YulBlock",
+ "src": "4989:140:43",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5027:88:43",
+ "nodeType": "YulBlock",
+ "src": "5027:88:43",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5056:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5056:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5059:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5059:1:43",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5049:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5049:6:43"
+ },
+ "nativeSrc": "5049:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5049:12:43"
+ },
+ "nativeSrc": "5049:12:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5049:12:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5089:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5089:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5092:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5092:4:43",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5082:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5082:6:43"
+ },
+ "nativeSrc": "5082:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5082:15:43"
+ },
+ "nativeSrc": "5082:15:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5082:15:43"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "v",
+ "nativeSrc": "5020:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "5020:1:43"
+ },
+ {
+ "name": "r",
+ "nativeSrc": "5023:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "5023:1:43"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5017:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "5017:2:43"
+ },
+ "nativeSrc": "5017:8:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5017:8:43"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5010:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5010:6:43"
+ },
+ "nativeSrc": "5010:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5010:16:43"
+ },
+ "nativeSrc": "5007:108:43",
+ "nodeType": "YulIf",
+ "src": "5007:108:43"
+ }
+ ]
+ },
+ "name": "checkField",
+ "nativeSrc": "4966:163:43",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "v",
+ "nativeSrc": "4986:1:43",
+ "nodeType": "YulTypedName",
+ "src": "4986:1:43",
+ "type": ""
+ }
+ ],
+ "src": "4966:163:43"
+ },
+ {
+ "body": {
+ "nativeSrc": "5266:705:43",
+ "nodeType": "YulBlock",
+ "src": "5266:705:43",
+ "statements": [
+ {
+ "nativeSrc": "5284:11:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5284:11:43",
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "5288:7:43",
+ "nodeType": "YulTypedName",
+ "src": "5288:7:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5312:22:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5312:22:43",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5329:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5329:4:43",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5323:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "5323:5:43"
+ },
+ "nativeSrc": "5323:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5323:11:43"
+ },
+ "variables": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5316:3:43",
+ "nodeType": "YulTypedName",
+ "src": "5316:3:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5358:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5358:3:43"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5363:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "5363:1:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5351:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5351:6:43"
+ },
+ "nativeSrc": "5351:14:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5351:14:43"
+ },
+ "nativeSrc": "5351:14:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5351:14:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5393:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5393:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5398:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5398:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5389:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5389:3:43"
+ },
+ "nativeSrc": "5389:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5389:12:43"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5403:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "5403:1:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5382:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5382:6:43"
+ },
+ "nativeSrc": "5382:23:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5382:23:43"
+ },
+ "nativeSrc": "5382:23:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5382:23:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5433:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5433:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5438:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5438:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5429:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5429:3:43"
+ },
+ "nativeSrc": "5429:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5429:12:43"
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5443:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "5443:1:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5422:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5422:6:43"
+ },
+ "nativeSrc": "5422:23:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5422:23:43"
+ },
+ "nativeSrc": "5422:23:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5422:23:43"
+ },
+ {
+ "nativeSrc": "5463:60:43",
+ "nodeType": "YulAssignment",
+ "src": "5463:60:43",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5489:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5489:3:43"
+ },
+ "nativeSrc": "5489:5:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5489:5:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5496:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5496:4:43",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5485:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:43"
+ },
+ "nativeSrc": "5485:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5485:16:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5503:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5503:1:43",
+ "type": "",
+ "value": "7"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5506:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5506:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5511:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5511:2:43",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5515:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5515:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5520:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5520:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5474:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "5474:10:43"
+ },
+ "nativeSrc": "5474:49:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5474:49:43"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5463:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "5463:7:43"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5560:88:43",
+ "nodeType": "YulBlock",
+ "src": "5560:88:43",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5589:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5589:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5592:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5592:1:43",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5582:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:43"
+ },
+ "nativeSrc": "5582:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5582:12:43"
+ },
+ "nativeSrc": "5582:12:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5582:12:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5622:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5622:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5625:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5625:4:43",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5615:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5615:6:43"
+ },
+ "nativeSrc": "5615:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5615:15:43"
+ },
+ "nativeSrc": "5615:15:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5615:15:43"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5551:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "5551:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5544:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5544:6:43"
+ },
+ "nativeSrc": "5544:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5544:15:43"
+ },
+ "nativeSrc": "5541:107:43",
+ "nodeType": "YulIf",
+ "src": "5541:107:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5677:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5677:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5682:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5682:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5673:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5673:3:43"
+ },
+ "nativeSrc": "5673:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5673:12:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5693:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "5693:2:43"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5687:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "5687:5:43"
+ },
+ "nativeSrc": "5687:9:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5687:9:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5666:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5666:6:43"
+ },
+ "nativeSrc": "5666:31:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5666:31:43"
+ },
+ "nativeSrc": "5666:31:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5666:31:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5725:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5725:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5730:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5730:2:43",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5721:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5721:3:43"
+ },
+ "nativeSrc": "5721:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5721:12:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5745:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "5745:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5749:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5749:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5741:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5741:3:43"
+ },
+ "nativeSrc": "5741:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5741:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5735:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "5735:5:43"
+ },
+ "nativeSrc": "5735:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5735:18:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5714:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5714:6:43"
+ },
+ "nativeSrc": "5714:40:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5714:40:43"
+ },
+ "nativeSrc": "5714:40:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5714:40:43"
+ },
+ {
+ "nativeSrc": "5772:60:43",
+ "nodeType": "YulAssignment",
+ "src": "5772:60:43",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5798:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5798:3:43"
+ },
+ "nativeSrc": "5798:5:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5798:5:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5805:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5805:4:43",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5794:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5794:3:43"
+ },
+ "nativeSrc": "5794:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5794:16:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5812:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5812:1:43",
+ "type": "",
+ "value": "6"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5815:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "5815:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5820:3:43",
+ "nodeType": "YulLiteral",
+ "src": "5820:3:43",
+ "type": "",
+ "value": "128"
+ },
+ {
+ "name": "pR",
+ "nativeSrc": "5825:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "5825:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5829:2:43",
+ "nodeType": "YulLiteral",
+ "src": "5829:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5783:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "5783:10:43"
+ },
+ "nativeSrc": "5783:49:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5783:49:43"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5772:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "5772:7:43"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5869:88:43",
+ "nodeType": "YulBlock",
+ "src": "5869:88:43",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5898:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5898:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5901:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5901:1:43",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5891:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5891:6:43"
+ },
+ "nativeSrc": "5891:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5891:12:43"
+ },
+ "nativeSrc": "5891:12:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5891:12:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5931:1:43",
+ "nodeType": "YulLiteral",
+ "src": "5931:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5934:4:43",
+ "nodeType": "YulLiteral",
+ "src": "5934:4:43",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5924:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5924:6:43"
+ },
+ "nativeSrc": "5924:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5924:15:43"
+ },
+ "nativeSrc": "5924:15:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "5924:15:43"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5860:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "5860:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5853:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "5853:6:43"
+ },
+ "nativeSrc": "5853:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "5853:15:43"
+ },
+ "nativeSrc": "5850:107:43",
+ "nodeType": "YulIf",
+ "src": "5850:107:43"
+ }
+ ]
+ },
+ "name": "g1_mulAccC",
+ "nativeSrc": "5233:738:43",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pR",
+ "nativeSrc": "5253:2:43",
+ "nodeType": "YulTypedName",
+ "src": "5253:2:43",
+ "type": ""
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5257:1:43",
+ "nodeType": "YulTypedName",
+ "src": "5257:1:43",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5260:1:43",
+ "nodeType": "YulTypedName",
+ "src": "5260:1:43",
+ "type": ""
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5263:1:43",
+ "nodeType": "YulTypedName",
+ "src": "5263:1:43",
+ "type": ""
+ }
+ ],
+ "src": "5233:738:43"
+ },
+ {
+ "body": {
+ "nativeSrc": "6045:2820:43",
+ "nodeType": "YulBlock",
+ "src": "6045:2820:43",
+ "statements": [
+ {
+ "nativeSrc": "6063:36:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6063:36:43",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6084:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6084:4:43"
+ },
+ {
+ "name": "pPairing",
+ "nativeSrc": "6090:8:43",
+ "nodeType": "YulIdentifier",
+ "src": "6090:8:43"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6080:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6080:3:43"
+ },
+ "nativeSrc": "6080:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6080:19:43"
+ },
+ "variables": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "6067:9:43",
+ "nodeType": "YulTypedName",
+ "src": "6067:9:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6116:26:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6116:26:43",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6132:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6132:4:43"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "6138:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6138:3:43"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6128:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6128:3:43"
+ },
+ "nativeSrc": "6128:14:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6128:14:43"
+ },
+ "variables": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6120:4:43",
+ "nodeType": "YulTypedName",
+ "src": "6120:4:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6167:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6167:4:43"
+ },
+ {
+ "name": "IC0x",
+ "nativeSrc": "6173:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6173:4:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6160:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "6160:6:43"
+ },
+ "nativeSrc": "6160:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6160:18:43"
+ },
+ "nativeSrc": "6160:18:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6160:18:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6206:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6206:4:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6212:2:43",
+ "nodeType": "YulLiteral",
+ "src": "6212:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6202:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6202:3:43"
+ },
+ "nativeSrc": "6202:13:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6202:13:43"
+ },
+ {
+ "name": "IC0y",
+ "nativeSrc": "6217:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6217:4:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6195:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "6195:6:43"
+ },
+ "nativeSrc": "6195:27:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6195:27:43"
+ },
+ "nativeSrc": "6195:27:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6195:27:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6323:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6323:4:43"
+ },
+ {
+ "name": "IC1x",
+ "nativeSrc": "6329:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6329:4:43"
+ },
+ {
+ "name": "IC1y",
+ "nativeSrc": "6335:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6335:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6358:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6358:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6370:1:43",
+ "nodeType": "YulLiteral",
+ "src": "6370:1:43",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6354:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6354:3:43"
+ },
+ "nativeSrc": "6354:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6354:18:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6341:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6341:12:43"
+ },
+ "nativeSrc": "6341:32:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6341:32:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6312:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6312:10:43"
+ },
+ "nativeSrc": "6312:62:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6312:62:43"
+ },
+ "nativeSrc": "6312:62:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6312:62:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6419:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6419:4:43"
+ },
+ {
+ "name": "IC2x",
+ "nativeSrc": "6425:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6425:4:43"
+ },
+ {
+ "name": "IC2y",
+ "nativeSrc": "6431:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6431:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6454:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6454:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6466:2:43",
+ "nodeType": "YulLiteral",
+ "src": "6466:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6450:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6450:3:43"
+ },
+ "nativeSrc": "6450:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6450:19:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6437:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6437:12:43"
+ },
+ "nativeSrc": "6437:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6437:33:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6408:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6408:10:43"
+ },
+ "nativeSrc": "6408:63:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6408:63:43"
+ },
+ "nativeSrc": "6408:63:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6408:63:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6516:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6516:4:43"
+ },
+ {
+ "name": "IC3x",
+ "nativeSrc": "6522:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6522:4:43"
+ },
+ {
+ "name": "IC3y",
+ "nativeSrc": "6528:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6528:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6551:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6551:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6563:2:43",
+ "nodeType": "YulLiteral",
+ "src": "6563:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6547:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6547:3:43"
+ },
+ "nativeSrc": "6547:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6547:19:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6534:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6534:12:43"
+ },
+ "nativeSrc": "6534:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6534:33:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6505:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6505:10:43"
+ },
+ "nativeSrc": "6505:63:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6505:63:43"
+ },
+ "nativeSrc": "6505:63:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6505:63:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6613:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6613:4:43"
+ },
+ {
+ "name": "IC4x",
+ "nativeSrc": "6619:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6619:4:43"
+ },
+ {
+ "name": "IC4y",
+ "nativeSrc": "6625:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6625:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6648:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6648:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6660:2:43",
+ "nodeType": "YulLiteral",
+ "src": "6660:2:43",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6644:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6644:3:43"
+ },
+ "nativeSrc": "6644:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6644:19:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6631:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6631:12:43"
+ },
+ "nativeSrc": "6631:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6631:33:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6602:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6602:10:43"
+ },
+ "nativeSrc": "6602:63:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6602:63:43"
+ },
+ "nativeSrc": "6602:63:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6602:63:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6710:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6710:4:43"
+ },
+ {
+ "name": "IC5x",
+ "nativeSrc": "6716:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6716:4:43"
+ },
+ {
+ "name": "IC5y",
+ "nativeSrc": "6722:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6722:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6745:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6745:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6757:3:43",
+ "nodeType": "YulLiteral",
+ "src": "6757:3:43",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6741:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6741:3:43"
+ },
+ "nativeSrc": "6741:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6741:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6728:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6728:12:43"
+ },
+ "nativeSrc": "6728:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6728:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6699:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6699:10:43"
+ },
+ "nativeSrc": "6699:64:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6699:64:43"
+ },
+ "nativeSrc": "6699:64:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6699:64:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6808:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6808:4:43"
+ },
+ {
+ "name": "IC6x",
+ "nativeSrc": "6814:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6814:4:43"
+ },
+ {
+ "name": "IC6y",
+ "nativeSrc": "6820:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6820:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6843:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6843:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6855:3:43",
+ "nodeType": "YulLiteral",
+ "src": "6855:3:43",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6839:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6839:3:43"
+ },
+ "nativeSrc": "6839:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6839:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6826:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6826:12:43"
+ },
+ "nativeSrc": "6826:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6826:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6797:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6797:10:43"
+ },
+ "nativeSrc": "6797:64:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6797:64:43"
+ },
+ "nativeSrc": "6797:64:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6797:64:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6906:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6906:4:43"
+ },
+ {
+ "name": "IC7x",
+ "nativeSrc": "6912:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6912:4:43"
+ },
+ {
+ "name": "IC7y",
+ "nativeSrc": "6918:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "6918:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6941:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6941:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6953:3:43",
+ "nodeType": "YulLiteral",
+ "src": "6953:3:43",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6937:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "6937:3:43"
+ },
+ "nativeSrc": "6937:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6937:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6924:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "6924:12:43"
+ },
+ "nativeSrc": "6924:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6924:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6895:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6895:10:43"
+ },
+ "nativeSrc": "6895:64:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6895:64:43"
+ },
+ "nativeSrc": "6895:64:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6895:64:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "7004:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "7004:4:43"
+ },
+ {
+ "name": "IC8x",
+ "nativeSrc": "7010:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "7010:4:43"
+ },
+ {
+ "name": "IC8y",
+ "nativeSrc": "7016:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "7016:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "7039:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "7039:10:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7051:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7051:3:43",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7035:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7035:3:43"
+ },
+ "nativeSrc": "7035:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7035:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7022:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7022:12:43"
+ },
+ "nativeSrc": "7022:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7022:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6993:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "6993:10:43"
+ },
+ "nativeSrc": "6993:64:43",
+ "nodeType": "YulFunctionCall",
+ "src": "6993:64:43"
+ },
+ "nativeSrc": "6993:64:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "6993:64:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7121:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7121:9:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7145:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7145:2:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7132:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7132:12:43"
+ },
+ "nativeSrc": "7132:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7132:16:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7114:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7114:6:43"
+ },
+ "nativeSrc": "7114:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7114:35:43"
+ },
+ "nativeSrc": "7114:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7114:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7177:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7177:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7188:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7188:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7173:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7173:3:43"
+ },
+ "nativeSrc": "7173:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7173:18:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "q",
+ "nativeSrc": "7201:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "7201:1:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7221:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7221:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7225:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7225:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7217:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7217:3:43"
+ },
+ "nativeSrc": "7217:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7217:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7204:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7204:12:43"
+ },
+ "nativeSrc": "7204:25:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7204:25:43"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7197:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7197:3:43"
+ },
+ "nativeSrc": "7197:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7197:33:43"
+ },
+ {
+ "name": "q",
+ "nativeSrc": "7232:1:43",
+ "nodeType": "YulIdentifier",
+ "src": "7232:1:43"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "7193:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7193:3:43"
+ },
+ "nativeSrc": "7193:41:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7193:41:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7166:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7166:6:43"
+ },
+ "nativeSrc": "7166:69:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7166:69:43"
+ },
+ "nativeSrc": "7166:69:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7166:69:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7285:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7285:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7296:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7296:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7281:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7281:3:43"
+ },
+ "nativeSrc": "7281:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7281:18:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7314:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7314:2:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7301:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7301:12:43"
+ },
+ "nativeSrc": "7301:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7301:16:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7274:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7274:6:43"
+ },
+ "nativeSrc": "7274:44:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7274:44:43"
+ },
+ "nativeSrc": "7274:44:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7274:44:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7346:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7346:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7357:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7357:2:43",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7342:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7342:3:43"
+ },
+ "nativeSrc": "7342:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7342:18:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7379:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7379:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7383:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7383:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7375:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7375:3:43"
+ },
+ "nativeSrc": "7375:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7375:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7362:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7362:12:43"
+ },
+ "nativeSrc": "7362:25:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7362:25:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7335:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7335:6:43"
+ },
+ "nativeSrc": "7335:53:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7335:53:43"
+ },
+ "nativeSrc": "7335:53:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7335:53:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7416:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7416:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7427:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7427:3:43",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7412:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7412:3:43"
+ },
+ "nativeSrc": "7412:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7412:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7450:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7450:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7454:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7454:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7446:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7446:3:43"
+ },
+ "nativeSrc": "7446:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7446:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7433:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7433:12:43"
+ },
+ "nativeSrc": "7433:25:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7433:25:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7405:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7405:6:43"
+ },
+ "nativeSrc": "7405:54:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7405:54:43"
+ },
+ "nativeSrc": "7405:54:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7405:54:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7487:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7487:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7498:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7498:3:43",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7483:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7483:3:43"
+ },
+ "nativeSrc": "7483:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7483:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7521:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "7521:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7525:2:43",
+ "nodeType": "YulLiteral",
+ "src": "7525:2:43",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7517:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7517:3:43"
+ },
+ "nativeSrc": "7517:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7517:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7504:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "7504:12:43"
+ },
+ "nativeSrc": "7504:25:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7504:25:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7476:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7476:6:43"
+ },
+ "nativeSrc": "7476:54:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7476:54:43"
+ },
+ "nativeSrc": "7476:54:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7476:54:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7585:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7585:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7596:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7596:3:43",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7581:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7581:3:43"
+ },
+ "nativeSrc": "7581:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7581:19:43"
+ },
+ {
+ "name": "alphax",
+ "nativeSrc": "7602:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7602:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7574:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7574:6:43"
+ },
+ "nativeSrc": "7574:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7574:35:43"
+ },
+ "nativeSrc": "7574:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7574:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7637:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7637:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7648:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7648:3:43",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7633:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7633:3:43"
+ },
+ "nativeSrc": "7633:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7633:19:43"
+ },
+ {
+ "name": "alphay",
+ "nativeSrc": "7654:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7654:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7626:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7626:6:43"
+ },
+ "nativeSrc": "7626:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7626:35:43"
+ },
+ "nativeSrc": "7626:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7626:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7715:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7715:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7726:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7726:3:43",
+ "type": "",
+ "value": "256"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7711:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7711:3:43"
+ },
+ "nativeSrc": "7711:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7711:19:43"
+ },
+ {
+ "name": "betax1",
+ "nativeSrc": "7732:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7732:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7704:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7704:6:43"
+ },
+ "nativeSrc": "7704:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7704:35:43"
+ },
+ "nativeSrc": "7704:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7704:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7767:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7767:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7778:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7778:3:43",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7763:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7763:3:43"
+ },
+ "nativeSrc": "7763:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7763:19:43"
+ },
+ {
+ "name": "betax2",
+ "nativeSrc": "7784:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7784:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7756:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7756:6:43"
+ },
+ "nativeSrc": "7756:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7756:35:43"
+ },
+ "nativeSrc": "7756:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7756:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7819:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7819:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7830:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7830:3:43",
+ "type": "",
+ "value": "320"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7815:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7815:3:43"
+ },
+ "nativeSrc": "7815:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7815:19:43"
+ },
+ {
+ "name": "betay1",
+ "nativeSrc": "7836:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7836:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7808:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7808:6:43"
+ },
+ "nativeSrc": "7808:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7808:35:43"
+ },
+ "nativeSrc": "7808:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7808:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7871:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7871:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7882:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7882:3:43",
+ "type": "",
+ "value": "352"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7867:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7867:3:43"
+ },
+ "nativeSrc": "7867:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7867:19:43"
+ },
+ {
+ "name": "betay2",
+ "nativeSrc": "7888:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7888:6:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7860:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7860:6:43"
+ },
+ "nativeSrc": "7860:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7860:35:43"
+ },
+ "nativeSrc": "7860:35:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7860:35:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7948:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "7948:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7959:3:43",
+ "nodeType": "YulLiteral",
+ "src": "7959:3:43",
+ "type": "",
+ "value": "384"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7944:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7944:3:43"
+ },
+ "nativeSrc": "7944:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7944:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "7975:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "7975:4:43"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "7981:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7981:3:43"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7971:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "7971:3:43"
+ },
+ "nativeSrc": "7971:14:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7971:14:43"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7965:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "7965:5:43"
+ },
+ "nativeSrc": "7965:21:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7965:21:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7937:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "7937:6:43"
+ },
+ "nativeSrc": "7937:50:43",
+ "nodeType": "YulFunctionCall",
+ "src": "7937:50:43"
+ },
+ "nativeSrc": "7937:50:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "7937:50:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8015:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8015:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8026:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8026:3:43",
+ "type": "",
+ "value": "416"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8011:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8011:3:43"
+ },
+ "nativeSrc": "8011:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8011:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8042:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "8042:4:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pVk",
+ "nativeSrc": "8052:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8052:3:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8057:2:43",
+ "nodeType": "YulLiteral",
+ "src": "8057:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8048:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8048:3:43"
+ },
+ "nativeSrc": "8048:12:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8048:12:43"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8038:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8038:3:43"
+ },
+ "nativeSrc": "8038:23:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8038:23:43"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8032:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "8032:5:43"
+ },
+ "nativeSrc": "8032:30:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8032:30:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8004:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8004:6:43"
+ },
+ "nativeSrc": "8004:59:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8004:59:43"
+ },
+ "nativeSrc": "8004:59:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8004:59:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8119:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8119:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8130:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8130:3:43",
+ "type": "",
+ "value": "448"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8115:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8115:3:43"
+ },
+ "nativeSrc": "8115:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8115:19:43"
+ },
+ {
+ "name": "gammax1",
+ "nativeSrc": "8136:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8136:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8108:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8108:6:43"
+ },
+ "nativeSrc": "8108:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8108:36:43"
+ },
+ "nativeSrc": "8108:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8108:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8172:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8172:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8183:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8183:3:43",
+ "type": "",
+ "value": "480"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8168:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8168:3:43"
+ },
+ "nativeSrc": "8168:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8168:19:43"
+ },
+ {
+ "name": "gammax2",
+ "nativeSrc": "8189:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8189:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8161:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8161:6:43"
+ },
+ "nativeSrc": "8161:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8161:36:43"
+ },
+ "nativeSrc": "8161:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8161:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8225:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8225:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8236:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8236:3:43",
+ "type": "",
+ "value": "512"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8221:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8221:3:43"
+ },
+ "nativeSrc": "8221:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8221:19:43"
+ },
+ {
+ "name": "gammay1",
+ "nativeSrc": "8242:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8242:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8214:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8214:6:43"
+ },
+ "nativeSrc": "8214:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8214:36:43"
+ },
+ "nativeSrc": "8214:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8214:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8278:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8278:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8289:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8289:3:43",
+ "type": "",
+ "value": "544"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8274:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8274:3:43"
+ },
+ "nativeSrc": "8274:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8274:19:43"
+ },
+ {
+ "name": "gammay2",
+ "nativeSrc": "8295:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8295:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8267:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8267:6:43"
+ },
+ "nativeSrc": "8267:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8267:36:43"
+ },
+ "nativeSrc": "8267:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8267:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8353:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8353:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8364:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8364:3:43",
+ "type": "",
+ "value": "576"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8349:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8349:3:43"
+ },
+ "nativeSrc": "8349:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8349:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8383:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "8383:2:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8370:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "8370:12:43"
+ },
+ "nativeSrc": "8370:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8370:16:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8342:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8342:6:43"
+ },
+ "nativeSrc": "8342:45:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8342:45:43"
+ },
+ "nativeSrc": "8342:45:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8342:45:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8415:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8415:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8426:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8426:3:43",
+ "type": "",
+ "value": "608"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8411:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8411:3:43"
+ },
+ "nativeSrc": "8411:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8411:19:43"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8449:2:43",
+ "nodeType": "YulIdentifier",
+ "src": "8449:2:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8453:2:43",
+ "nodeType": "YulLiteral",
+ "src": "8453:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8445:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8445:3:43"
+ },
+ "nativeSrc": "8445:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8445:11:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8432:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "8432:12:43"
+ },
+ "nativeSrc": "8432:25:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8432:25:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8404:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8404:6:43"
+ },
+ "nativeSrc": "8404:54:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8404:54:43"
+ },
+ "nativeSrc": "8404:54:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8404:54:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8513:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8513:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8524:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8524:3:43",
+ "type": "",
+ "value": "640"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8509:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8509:3:43"
+ },
+ "nativeSrc": "8509:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8509:19:43"
+ },
+ {
+ "name": "deltax1",
+ "nativeSrc": "8530:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8530:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8502:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8502:6:43"
+ },
+ "nativeSrc": "8502:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8502:36:43"
+ },
+ "nativeSrc": "8502:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8502:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8566:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8566:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8577:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8577:3:43",
+ "type": "",
+ "value": "672"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8562:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8562:3:43"
+ },
+ "nativeSrc": "8562:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8562:19:43"
+ },
+ {
+ "name": "deltax2",
+ "nativeSrc": "8583:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8583:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8555:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8555:6:43"
+ },
+ "nativeSrc": "8555:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8555:36:43"
+ },
+ "nativeSrc": "8555:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8555:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8619:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8619:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8630:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8630:3:43",
+ "type": "",
+ "value": "704"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8615:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8615:3:43"
+ },
+ "nativeSrc": "8615:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8615:19:43"
+ },
+ {
+ "name": "deltay1",
+ "nativeSrc": "8636:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8636:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8608:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8608:6:43"
+ },
+ "nativeSrc": "8608:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8608:36:43"
+ },
+ "nativeSrc": "8608:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8608:36:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8672:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8672:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8683:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8683:3:43",
+ "type": "",
+ "value": "736"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8668:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8668:3:43"
+ },
+ "nativeSrc": "8668:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8668:19:43"
+ },
+ {
+ "name": "deltay2",
+ "nativeSrc": "8689:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8689:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8661:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8661:6:43"
+ },
+ "nativeSrc": "8661:36:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8661:36:43"
+ },
+ "nativeSrc": "8661:36:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8661:36:43"
+ },
+ {
+ "nativeSrc": "8716:79:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8716:79:43",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "8746:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8746:3:43"
+ },
+ "nativeSrc": "8746:5:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8746:5:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8753:4:43",
+ "nodeType": "YulLiteral",
+ "src": "8753:4:43",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8742:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8742:3:43"
+ },
+ "nativeSrc": "8742:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8742:16:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8760:1:43",
+ "nodeType": "YulLiteral",
+ "src": "8760:1:43",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8763:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8763:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8774:3:43",
+ "nodeType": "YulLiteral",
+ "src": "8774:3:43",
+ "type": "",
+ "value": "768"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8779:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8779:9:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8790:4:43",
+ "nodeType": "YulLiteral",
+ "src": "8790:4:43",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "8731:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "8731:10:43"
+ },
+ "nativeSrc": "8731:64:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8731:64:43"
+ },
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "8720:7:43",
+ "nodeType": "YulTypedName",
+ "src": "8720:7:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8813:38:43",
+ "nodeType": "YulAssignment",
+ "src": "8813:38:43",
+ "value": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "8825:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "8825:7:43"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8840:9:43",
+ "nodeType": "YulIdentifier",
+ "src": "8840:9:43"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8834:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "8834:5:43"
+ },
+ "nativeSrc": "8834:16:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8834:16:43"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8821:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8821:3:43"
+ },
+ "nativeSrc": "8821:30:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8821:30:43"
+ },
+ "variableNames": [
+ {
+ "name": "isOk",
+ "nativeSrc": "8813:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "8813:4:43"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checkPairing",
+ "nativeSrc": "5985:2880:43",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pA",
+ "nativeSrc": "6007:2:43",
+ "nodeType": "YulTypedName",
+ "src": "6007:2:43",
+ "type": ""
+ },
+ {
+ "name": "pB",
+ "nativeSrc": "6011:2:43",
+ "nodeType": "YulTypedName",
+ "src": "6011:2:43",
+ "type": ""
+ },
+ {
+ "name": "pC",
+ "nativeSrc": "6015:2:43",
+ "nodeType": "YulTypedName",
+ "src": "6015:2:43",
+ "type": ""
+ },
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6019:10:43",
+ "nodeType": "YulTypedName",
+ "src": "6019:10:43",
+ "type": ""
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "6031:4:43",
+ "nodeType": "YulTypedName",
+ "src": "6031:4:43",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "isOk",
+ "nativeSrc": "6040:4:43",
+ "nodeType": "YulTypedName",
+ "src": "6040:4:43",
+ "type": ""
+ }
+ ],
+ "src": "5985:2880:43"
+ },
+ {
+ "nativeSrc": "8879:23:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8879:23:43",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8897:4:43",
+ "nodeType": "YulLiteral",
+ "src": "8897:4:43",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8891:5:43",
+ "nodeType": "YulIdentifier",
+ "src": "8891:5:43"
+ },
+ "nativeSrc": "8891:11:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8891:11:43"
+ },
+ "variables": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8883:4:43",
+ "nodeType": "YulTypedName",
+ "src": "8883:4:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8922:4:43",
+ "nodeType": "YulLiteral",
+ "src": "8922:4:43",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8932:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "8932:4:43"
+ },
+ {
+ "name": "pLastMem",
+ "nativeSrc": "8938:8:43",
+ "nodeType": "YulIdentifier",
+ "src": "8938:8:43"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8928:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "8928:3:43"
+ },
+ "nativeSrc": "8928:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8928:19:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8915:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "8915:6:43"
+ },
+ "nativeSrc": "8915:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "8915:33:43"
+ },
+ "nativeSrc": "8915:33:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "8915:33:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9054:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9054:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9067:1:43",
+ "nodeType": "YulLiteral",
+ "src": "9067:1:43",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9050:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9050:3:43"
+ },
+ "nativeSrc": "9050:19:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9050:19:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9037:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9037:12:43"
+ },
+ "nativeSrc": "9037:33:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9037:33:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9026:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9026:10:43"
+ },
+ "nativeSrc": "9026:45:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9026:45:43"
+ },
+ "nativeSrc": "9026:45:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9026:45:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9125:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9125:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9138:2:43",
+ "nodeType": "YulLiteral",
+ "src": "9138:2:43",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9121:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9121:3:43"
+ },
+ "nativeSrc": "9121:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9121:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9108:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9108:12:43"
+ },
+ "nativeSrc": "9108:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9108:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9097:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9097:10:43"
+ },
+ "nativeSrc": "9097:46:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9097:46:43"
+ },
+ "nativeSrc": "9097:46:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9097:46:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9197:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9197:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9210:2:43",
+ "nodeType": "YulLiteral",
+ "src": "9210:2:43",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9193:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9193:3:43"
+ },
+ "nativeSrc": "9193:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9193:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9180:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9180:12:43"
+ },
+ "nativeSrc": "9180:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9180:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9169:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9169:10:43"
+ },
+ "nativeSrc": "9169:46:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9169:46:43"
+ },
+ "nativeSrc": "9169:46:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9169:46:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9269:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9269:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9282:2:43",
+ "nodeType": "YulLiteral",
+ "src": "9282:2:43",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9265:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9265:3:43"
+ },
+ "nativeSrc": "9265:20:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9265:20:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9252:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9252:12:43"
+ },
+ "nativeSrc": "9252:34:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9252:34:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9241:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9241:10:43"
+ },
+ "nativeSrc": "9241:46:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9241:46:43"
+ },
+ "nativeSrc": "9241:46:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9241:46:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9341:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9341:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9354:3:43",
+ "nodeType": "YulLiteral",
+ "src": "9354:3:43",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9337:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9337:3:43"
+ },
+ "nativeSrc": "9337:21:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9337:21:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9324:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9324:12:43"
+ },
+ "nativeSrc": "9324:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9324:35:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9313:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9313:10:43"
+ },
+ "nativeSrc": "9313:47:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9313:47:43"
+ },
+ "nativeSrc": "9313:47:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9313:47:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9414:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9414:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9427:3:43",
+ "nodeType": "YulLiteral",
+ "src": "9427:3:43",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9410:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9410:3:43"
+ },
+ "nativeSrc": "9410:21:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9410:21:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9397:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9397:12:43"
+ },
+ "nativeSrc": "9397:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9397:35:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9386:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9386:10:43"
+ },
+ "nativeSrc": "9386:47:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9386:47:43"
+ },
+ "nativeSrc": "9386:47:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9386:47:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9487:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9487:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9500:3:43",
+ "nodeType": "YulLiteral",
+ "src": "9500:3:43",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9483:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9483:3:43"
+ },
+ "nativeSrc": "9483:21:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9483:21:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9470:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9470:12:43"
+ },
+ "nativeSrc": "9470:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9470:35:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9459:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9459:10:43"
+ },
+ "nativeSrc": "9459:47:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9459:47:43"
+ },
+ "nativeSrc": "9459:47:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9459:47:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9560:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9560:11:43"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9573:3:43",
+ "nodeType": "YulLiteral",
+ "src": "9573:3:43",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9556:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9556:3:43"
+ },
+ "nativeSrc": "9556:21:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9556:21:43"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9543:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9543:12:43"
+ },
+ "nativeSrc": "9543:35:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9543:35:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9532:10:43",
+ "nodeType": "YulIdentifier",
+ "src": "9532:10:43"
+ },
+ "nativeSrc": "9532:47:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9532:47:43"
+ },
+ "nativeSrc": "9532:47:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9532:47:43"
+ },
+ {
+ "nativeSrc": "9646:61:43",
+ "nodeType": "YulVariableDeclaration",
+ "src": "9646:61:43",
+ "value": {
+ "arguments": [
+ {
+ "name": "_pA",
+ "nativeSrc": "9674:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9674:3:43"
+ },
+ {
+ "name": "_pB",
+ "nativeSrc": "9679:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9679:3:43"
+ },
+ {
+ "name": "_pC",
+ "nativeSrc": "9684:3:43",
+ "nodeType": "YulIdentifier",
+ "src": "9684:3:43"
+ },
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9689:11:43",
+ "nodeType": "YulIdentifier",
+ "src": "9689:11:43"
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "9702:4:43",
+ "nodeType": "YulIdentifier",
+ "src": "9702:4:43"
+ }
+ ],
+ "functionName": {
+ "name": "checkPairing",
+ "nativeSrc": "9661:12:43",
+ "nodeType": "YulIdentifier",
+ "src": "9661:12:43"
+ },
+ "nativeSrc": "9661:46:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9661:46:43"
+ },
+ "variables": [
+ {
+ "name": "isValid",
+ "nativeSrc": "9650:7:43",
+ "nodeType": "YulTypedName",
+ "src": "9650:7:43",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9728:1:43",
+ "nodeType": "YulLiteral",
+ "src": "9728:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "isValid",
+ "nativeSrc": "9731:7:43",
+ "nodeType": "YulIdentifier",
+ "src": "9731:7:43"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "9721:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "9721:6:43"
+ },
+ "nativeSrc": "9721:18:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9721:18:43"
+ },
+ "nativeSrc": "9721:18:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9721:18:43"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9760:1:43",
+ "nodeType": "YulLiteral",
+ "src": "9760:1:43",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9763:4:43",
+ "nodeType": "YulLiteral",
+ "src": "9763:4:43",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "9753:6:43",
+ "nodeType": "YulIdentifier",
+ "src": "9753:6:43"
+ },
+ "nativeSrc": "9753:15:43",
+ "nodeType": "YulFunctionCall",
+ "src": "9753:15:43"
+ },
+ "nativeSrc": "9753:15:43",
+ "nodeType": "YulExpressionStatement",
+ "src": "9753:15:43"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18010,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6173:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18013,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6217:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18016,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6329:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18019,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6335:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18022,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6425:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18025,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6431:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18028,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6522:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18031,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6528:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18034,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6619:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18037,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6625:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18040,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6716:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18043,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6722:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18046,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6814:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18049,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6820:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18052,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6912:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18055,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6918:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18058,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7010:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18061,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7016:4:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18074,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9674:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18080,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9679:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18084,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9684:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9054:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9125:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9197:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9269:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9341:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9414:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9487:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9560:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18088,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9689:11:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17968,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7602:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17971,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7654:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17974,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7732:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17977,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7784:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17980,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7836:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17983,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7888:6:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17998,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8530:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18001,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8583:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18004,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8636:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18007,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8689:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17986,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8136:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17989,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8189:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17992,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8242:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17995,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8295:7:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18070,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8938:8:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18067,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6090:8:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18064,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6138:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18064,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7981:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18064,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8052:3:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17965,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7201:1:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17965,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7232:1:43",
+ "valueSize": 1
+ },
+ {
+ "declaration": 17962,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5023:1:43",
+ "valueSize": 1
+ }
+ ],
+ "id": 18093,
+ "nodeType": "InlineAssembly",
+ "src": "4943:4836:43"
+ }
+ ]
+ },
+ "functionSelector": "c9219a7a",
+ "id": 18095,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "4795:11:43",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18089,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18074,
+ "mutability": "mutable",
+ "name": "_pA",
+ "nameLocation": "4824:3:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18095,
+ "src": "4807:20:43",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18071,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4807:4:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18073,
+ "length": {
+ "hexValue": "32",
+ "id": 18072,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4812:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4807:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18080,
+ "mutability": "mutable",
+ "name": "_pB",
+ "nameLocation": "4849:3:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18095,
+ "src": "4829:23:43",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 18075,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4829:4:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18077,
+ "length": {
+ "hexValue": "32",
+ "id": 18076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4834:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4829:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 18079,
+ "length": {
+ "hexValue": "32",
+ "id": 18078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4837:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4829:10:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18084,
+ "mutability": "mutable",
+ "name": "_pC",
+ "nameLocation": "4871:3:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18095,
+ "src": "4854:20:43",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18081,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4854:4:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18083,
+ "length": {
+ "hexValue": "32",
+ "id": 18082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4859:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4854:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18088,
+ "mutability": "mutable",
+ "name": "_pubSignals",
+ "nameLocation": "4893:11:43",
+ "nodeType": "VariableDeclaration",
+ "scope": 18095,
+ "src": "4876:28:43",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18085,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4876:4:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18087,
+ "length": {
+ "hexValue": "38",
+ "id": 18086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4881:1:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4876:7:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4806:99:43"
+ },
+ "returnParameters": {
+ "id": 18092,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18091,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18095,
+ "src": "4927:4:43",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18090,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4927:4:43",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4926:6:43"
+ },
+ "scope": 18096,
+ "src": "4786:5000:43",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 18097,
+ "src": "831:8958:43",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "798:8992:43"
+ },
+ "id": 43
+ },
+ "contracts/verifiers/idcard/Verifier_idcard_sha512.sol": {
+ "ast": {
+ "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha512.sol",
+ "exportedSymbols": {
+ "Verifier_idcard_sha512": [
+ 18235
+ ]
+ },
+ "id": 18236,
+ "license": "GPL-3.0",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 18098,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.7",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "798:31:44"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Verifier_idcard_sha512",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 18235,
+ "linearizedBaseContracts": [
+ 18235
+ ],
+ "name": "Verifier_idcard_sha512",
+ "nameLocation": "840:22:44",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 18101,
+ "mutability": "constant",
+ "name": "r",
+ "nameLocation": "911:1:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "894:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18099,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137",
+ "id": 18100,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "918:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...5617"
+ },
+ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18104,
+ "mutability": "constant",
+ "name": "q",
+ "nameLocation": "1041:1:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1024:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18102,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1024:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833",
+ "id": 18103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1047:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1",
+ "typeString": "int_const 2188...(69 digits omitted)...8583"
+ },
+ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18107,
+ "mutability": "constant",
+ "name": "alphax",
+ "nameLocation": "1177:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1160:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18105,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1160:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432",
+ "id": 18106,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1187:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1",
+ "typeString": "int_const 2049...(69 digits omitted)...3042"
+ },
+ "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18110,
+ "mutability": "constant",
+ "name": "alphay",
+ "nameLocation": "1287:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1270:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18108,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1270:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538",
+ "id": 18109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1297:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1",
+ "typeString": "int_const 9383...(68 digits omitted)...5958"
+ },
+ "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18113,
+ "mutability": "constant",
+ "name": "betax1",
+ "nameLocation": "1396:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1379:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18111,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1379:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332",
+ "id": 18112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1406:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1",
+ "typeString": "int_const 4252...(68 digits omitted)...7132"
+ },
+ "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18116,
+ "mutability": "constant",
+ "name": "betax2",
+ "nameLocation": "1505:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1488:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18114,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1488:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331",
+ "id": 18115,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1515:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1",
+ "typeString": "int_const 6375...(68 digits omitted)...8731"
+ },
+ "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18119,
+ "mutability": "constant",
+ "name": "betay1",
+ "nameLocation": "1614:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1597:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18117,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1597:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739",
+ "id": 18118,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1624:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1",
+ "typeString": "int_const 2184...(69 digits omitted)...6679"
+ },
+ "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18122,
+ "mutability": "constant",
+ "name": "betay2",
+ "nameLocation": "1724:6:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1707:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18120,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1707:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536",
+ "id": 18121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1734:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1",
+ "typeString": "int_const 1050...(69 digits omitted)...6856"
+ },
+ "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18125,
+ "mutability": "constant",
+ "name": "gammax1",
+ "nameLocation": "1834:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1817:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18123,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1817:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334",
+ "id": 18124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1844:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1",
+ "typeString": "int_const 1155...(69 digits omitted)...5634"
+ },
+ "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18128,
+ "mutability": "constant",
+ "name": "gammax2",
+ "nameLocation": "1944:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "1927:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18126,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1927:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831",
+ "id": 18127,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1954:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1",
+ "typeString": "int_const 1085...(69 digits omitted)...2781"
+ },
+ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18131,
+ "mutability": "constant",
+ "name": "gammay1",
+ "nameLocation": "2054:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2037:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18129,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2037:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331",
+ "id": 18130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2064:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1",
+ "typeString": "int_const 4082...(68 digits omitted)...3531"
+ },
+ "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18134,
+ "mutability": "constant",
+ "name": "gammay2",
+ "nameLocation": "2163:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2146:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2146:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330",
+ "id": 18133,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2173:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1",
+ "typeString": "int_const 8495...(68 digits omitted)...1930"
+ },
+ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18137,
+ "mutability": "constant",
+ "name": "deltax1",
+ "nameLocation": "2272:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2255:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18135,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2255:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "34393335303333333237353837343631373832333839333939363237383534393230393931323336363136393038383130343639313138373134373531373332333432323735303631343436",
+ "id": 18136,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2282:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4935033327587461782389399627854920991236616908810469118714751732342275061446_by_1",
+ "typeString": "int_const 4935...(68 digits omitted)...1446"
+ },
+ "value": "4935033327587461782389399627854920991236616908810469118714751732342275061446"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18140,
+ "mutability": "constant",
+ "name": "deltax2",
+ "nameLocation": "2381:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2364:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18138,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2364:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3135303430393538383137383038323934353339393335353434333639343139373736313833313137323339333439333830393031313633313131343039353034393538303137363633383434",
+ "id": 18139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2391:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_15040958817808294539935544369419776183117239349380901163111409504958017663844_by_1",
+ "typeString": "int_const 1504...(69 digits omitted)...3844"
+ },
+ "value": "15040958817808294539935544369419776183117239349380901163111409504958017663844"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18143,
+ "mutability": "constant",
+ "name": "deltay1",
+ "nameLocation": "2491:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2474:103:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18141,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2474:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32303037323234333136353731333434313631343635323338343732383031383430383738343839353038323832373839323838383838383538353539383438363035363436323430383438",
+ "id": 18142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2501:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2007224316571344161465238472801840878489508282789288888858559848605646240848_by_1",
+ "typeString": "int_const 2007...(68 digits omitted)...0848"
+ },
+ "value": "2007224316571344161465238472801840878489508282789288888858559848605646240848"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18146,
+ "mutability": "constant",
+ "name": "deltay2",
+ "nameLocation": "2600:7:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2583:104:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18144,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2583:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138353539373439373533393538313833353833353932343738353332313439323134323234373033303136393735323938333333343630383631393135353434363533363631333538313434",
+ "id": 18145,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2610:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18559749753958183583592478532149214224703016975298333460861915544653661358144_by_1",
+ "typeString": "int_const 1855...(69 digits omitted)...8144"
+ },
+ "value": "18559749753958183583592478532149214224703016975298333460861915544653661358144"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18149,
+ "mutability": "constant",
+ "name": "IC0x",
+ "nameLocation": "2716:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2699:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18147,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2699:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36373735303534343032323238363433373136323535383032333334373334393836393438363832363832343330353138323739343836323533313936343831393839333039353636373232",
+ "id": 18148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2723:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6775054402228643716255802334734986948682682430518279486253196481989309566722_by_1",
+ "typeString": "int_const 6775...(68 digits omitted)...6722"
+ },
+ "value": "6775054402228643716255802334734986948682682430518279486253196481989309566722"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18152,
+ "mutability": "constant",
+ "name": "IC0y",
+ "nameLocation": "2822:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2805:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18150,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2805:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "31323536323139303437313332363432313138303235363039383438383136333930333436313037303035333839383934363235333833313035383036353136393638333439343235313634",
+ "id": 18151,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2829:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1256219047132642118025609848816390346107005389894625383105806516968349425164_by_1",
+ "typeString": "int_const 1256...(68 digits omitted)...5164"
+ },
+ "value": "1256219047132642118025609848816390346107005389894625383105806516968349425164"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18155,
+ "mutability": "constant",
+ "name": "IC1x",
+ "nameLocation": "2933:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "2916:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18153,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2916:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3130313130353533313237373138363031353032343934313536303632303237303231373932323739343135363935303037373036333033303634343435383935333035373436373936393732",
+ "id": 18154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2940:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10110553127718601502494156062027021792279415695007706303064445895305746796972_by_1",
+ "typeString": "int_const 1011...(69 digits omitted)...6972"
+ },
+ "value": "10110553127718601502494156062027021792279415695007706303064445895305746796972"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18158,
+ "mutability": "constant",
+ "name": "IC1y",
+ "nameLocation": "3040:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3023:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18156,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3023:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139383938393738333939313631303635383739343634383436383239383338303634363339343332343733333937343430363537333933353135363934323339303735353439343539343134",
+ "id": 18157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3047:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19898978399161065879464846829838064639432473397440657393515694239075549459414_by_1",
+ "typeString": "int_const 1989...(69 digits omitted)...9414"
+ },
+ "value": "19898978399161065879464846829838064639432473397440657393515694239075549459414"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18161,
+ "mutability": "constant",
+ "name": "IC2x",
+ "nameLocation": "3152:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3135:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18159,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3135:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3134353630313837343334343939303334383731333531343637363237313731313033313732363235313230383434363531383534313134383237353536303033373838373230393730343137",
+ "id": 18160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3159:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14560187434499034871351467627171103172625120844651854114827556003788720970417_by_1",
+ "typeString": "int_const 1456...(69 digits omitted)...0417"
+ },
+ "value": "14560187434499034871351467627171103172625120844651854114827556003788720970417"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18164,
+ "mutability": "constant",
+ "name": "IC2y",
+ "nameLocation": "3259:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3242:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18162,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3242:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3134393336313038353731373132393732323435333031373439363731303937303339373839363036383332333035393431303830363634323235373736323638363535373531363536393533",
+ "id": 18163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3266:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14936108571712972245301749671097039789606832305941080664225776268655751656953_by_1",
+ "typeString": "int_const 1493...(69 digits omitted)...6953"
+ },
+ "value": "14936108571712972245301749671097039789606832305941080664225776268655751656953"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18167,
+ "mutability": "constant",
+ "name": "IC3x",
+ "nameLocation": "3371:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3354:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18165,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3354:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3134303539393139383931383238383039303137373232303231343332343138323331393331343032353935303938323038363837353432353938313233333338313530373435363430333833",
+ "id": 18166,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3378:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_14059919891828809017722021432418231931402595098208687542598123338150745640383_by_1",
+ "typeString": "int_const 1405...(69 digits omitted)...0383"
+ },
+ "value": "14059919891828809017722021432418231931402595098208687542598123338150745640383"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18170,
+ "mutability": "constant",
+ "name": "IC3y",
+ "nameLocation": "3478:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3461:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18168,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3461:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "35323837313839313837333032343439383832333830353837333035343832303938313332303435333035353730363836313239333834363534303137363432343238383536353337323537",
+ "id": 18169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3485:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_5287189187302449882380587305482098132045305570686129384654017642428856537257_by_1",
+ "typeString": "int_const 5287...(68 digits omitted)...7257"
+ },
+ "value": "5287189187302449882380587305482098132045305570686129384654017642428856537257"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18173,
+ "mutability": "constant",
+ "name": "IC4x",
+ "nameLocation": "3589:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3572:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18171,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3572:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "36373036393439373633383533393935303539353035323432343337363438343332393239383338313635333637313632343637373436333733343137333834383137363439393339393730",
+ "id": 18172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3596:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_6706949763853995059505242437648432929838165367162467746373417384817649939970_by_1",
+ "typeString": "int_const 6706...(68 digits omitted)...9970"
+ },
+ "value": "6706949763853995059505242437648432929838165367162467746373417384817649939970"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18176,
+ "mutability": "constant",
+ "name": "IC4y",
+ "nameLocation": "3695:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3678:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18174,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3678:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "32303135353130313835363438313434323730373439373634333736363536333432323536313236323830333031393737393331393037333534333638323737313938353631383136373837",
+ "id": 18175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3702:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2015510185648144270749764376656342256126280301977931907354368277198561816787_by_1",
+ "typeString": "int_const 2015...(68 digits omitted)...6787"
+ },
+ "value": "2015510185648144270749764376656342256126280301977931907354368277198561816787"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18179,
+ "mutability": "constant",
+ "name": "IC5x",
+ "nameLocation": "3806:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3789:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18177,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3789:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3138353436373635303138303039333835383639323533333932373338303830363738333233343334343933383634343438353835343032363835373438333239383536313536343937353537",
+ "id": 18178,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3813:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18546765018009385869253392738080678323434493864448585402685748329856156497557_by_1",
+ "typeString": "int_const 1854...(69 digits omitted)...7557"
+ },
+ "value": "18546765018009385869253392738080678323434493864448585402685748329856156497557"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18182,
+ "mutability": "constant",
+ "name": "IC5y",
+ "nameLocation": "3913:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "3896:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18180,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3896:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39373130383438313839333138353731313936353138323731333733353130343934323638383031333536383732343435383130333535383533313638303538343932343539393838313939",
+ "id": 18181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3920:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9710848189318571196518271373510494268801356872445810355853168058492459988199_by_1",
+ "typeString": "int_const 9710...(68 digits omitted)...8199"
+ },
+ "value": "9710848189318571196518271373510494268801356872445810355853168058492459988199"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18185,
+ "mutability": "constant",
+ "name": "IC6x",
+ "nameLocation": "4024:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4007:99:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18183,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4007:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "353434393032373436313130353737333234333239333634323938363530363933363637333636303137323539333839373836383638373338303732363634373839343234383032393234",
+ "id": 18184,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4031:75:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_544902746110577324329364298650693667366017259389786868738072664789424802924_by_1",
+ "typeString": "int_const 5449...(67 digits omitted)...2924"
+ },
+ "value": "544902746110577324329364298650693667366017259389786868738072664789424802924"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18188,
+ "mutability": "constant",
+ "name": "IC6y",
+ "nameLocation": "4129:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4112:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18186,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4112:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139383632393633393031333037343939323331383330303636343533333634323334373238393532343939323535363339383632363630313030353532313836303035373931393431303635",
+ "id": 18187,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4136:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19862963901307499231830066453364234728952499255639862660100552186005791941065_by_1",
+ "typeString": "int_const 1986...(69 digits omitted)...1065"
+ },
+ "value": "19862963901307499231830066453364234728952499255639862660100552186005791941065"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18191,
+ "mutability": "constant",
+ "name": "IC7x",
+ "nameLocation": "4241:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4224:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18189,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4224:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39303631303736353230373634333531363230333739353135363930353835363930303739303334313334303832343034393235363939363230353835323034383636333532303738343735",
+ "id": 18190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4248:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9061076520764351620379515690585690079034134082404925699620585204866352078475_by_1",
+ "typeString": "int_const 9061...(68 digits omitted)...8475"
+ },
+ "value": "9061076520764351620379515690585690079034134082404925699620585204866352078475"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18194,
+ "mutability": "constant",
+ "name": "IC7y",
+ "nameLocation": "4347:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4330:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18192,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4330:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3139343834363432353432363035393537343536393835303531343437373130353031353637353238323739393032363530323939383637343438313330323438323336323931373332383031",
+ "id": 18193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4354:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_19484642542605957456985051447710501567528279902650299867448130248236291732801_by_1",
+ "typeString": "int_const 1948...(69 digits omitted)...2801"
+ },
+ "value": "19484642542605957456985051447710501567528279902650299867448130248236291732801"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18197,
+ "mutability": "constant",
+ "name": "IC8x",
+ "nameLocation": "4459:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4442:100:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18195,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4442:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "39393134313139363937343232373735333734353130303931323136393838393030303633363931323233363436373832373938303337353830343238343531393534383039363338323439",
+ "id": 18196,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4466:76:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_9914119697422775374510091216988900063691223646782798037580428451954809638249_by_1",
+ "typeString": "int_const 9914...(68 digits omitted)...8249"
+ },
+ "value": "9914119697422775374510091216988900063691223646782798037580428451954809638249"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18200,
+ "mutability": "constant",
+ "name": "IC8y",
+ "nameLocation": "4565:4:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4548:101:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18198,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4548:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "hexValue": "3132393031383935333237393438333330323633393735383635333433303430323137313935303733343234333831303532383932313631343137303337303933303139393831333932323034",
+ "id": 18199,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4572:77:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12901895327948330263975865343040217195073424381052892161417037093019981392204_by_1",
+ "typeString": "int_const 1290...(69 digits omitted)...2204"
+ },
+ "value": "12901895327948330263975865343040217195073424381052892161417037093019981392204"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18203,
+ "mutability": "constant",
+ "name": "pVk",
+ "nameLocation": "4697:3:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4681:23:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18201,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4681:6:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "30",
+ "id": 18202,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4703:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18206,
+ "mutability": "constant",
+ "name": "pPairing",
+ "nameLocation": "4726:8:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4710:30:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18204,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4710:6:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "313238",
+ "id": 18205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4737:3:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_128_by_1",
+ "typeString": "int_const 128"
+ },
+ "value": "128"
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 18209,
+ "mutability": "constant",
+ "name": "pLastMem",
+ "nameLocation": "4763:8:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18235,
+ "src": "4747:30:44",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18207,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "4747:6:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "value": {
+ "hexValue": "383936",
+ "id": 18208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4774:3:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_896_by_1",
+ "typeString": "int_const 896"
+ },
+ "value": "896"
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18233,
+ "nodeType": "Block",
+ "src": "4931:4853:44",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "4950:4827:44",
+ "nodeType": "YulBlock",
+ "src": "4950:4827:44",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4987:140:44",
+ "nodeType": "YulBlock",
+ "src": "4987:140:44",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5025:88:44",
+ "nodeType": "YulBlock",
+ "src": "5025:88:44",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5054:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5054:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5057:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5057:1:44",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5047:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5047:6:44"
+ },
+ "nativeSrc": "5047:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5047:12:44"
+ },
+ "nativeSrc": "5047:12:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5047:12:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5087:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5090:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5090:4:44",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5080:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5080:6:44"
+ },
+ "nativeSrc": "5080:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5080:15:44"
+ },
+ "nativeSrc": "5080:15:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5080:15:44"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "v",
+ "nativeSrc": "5018:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "5018:1:44"
+ },
+ {
+ "name": "r",
+ "nativeSrc": "5021:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "5021:1:44"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5015:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "5015:2:44"
+ },
+ "nativeSrc": "5015:8:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5015:8:44"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5008:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5008:6:44"
+ },
+ "nativeSrc": "5008:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5008:16:44"
+ },
+ "nativeSrc": "5005:108:44",
+ "nodeType": "YulIf",
+ "src": "5005:108:44"
+ }
+ ]
+ },
+ "name": "checkField",
+ "nativeSrc": "4964:163:44",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "v",
+ "nativeSrc": "4984:1:44",
+ "nodeType": "YulTypedName",
+ "src": "4984:1:44",
+ "type": ""
+ }
+ ],
+ "src": "4964:163:44"
+ },
+ {
+ "body": {
+ "nativeSrc": "5264:705:44",
+ "nodeType": "YulBlock",
+ "src": "5264:705:44",
+ "statements": [
+ {
+ "nativeSrc": "5282:11:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5282:11:44",
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "5286:7:44",
+ "nodeType": "YulTypedName",
+ "src": "5286:7:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5310:22:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5310:22:44",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5327:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5327:4:44",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5321:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "5321:5:44"
+ },
+ "nativeSrc": "5321:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5321:11:44"
+ },
+ "variables": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5314:3:44",
+ "nodeType": "YulTypedName",
+ "src": "5314:3:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5356:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5356:3:44"
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5361:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "5361:1:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5349:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5349:6:44"
+ },
+ "nativeSrc": "5349:14:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5349:14:44"
+ },
+ "nativeSrc": "5349:14:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5349:14:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5391:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5391:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5396:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5396:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5387:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5387:3:44"
+ },
+ "nativeSrc": "5387:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5387:12:44"
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5401:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "5401:1:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5380:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5380:6:44"
+ },
+ "nativeSrc": "5380:23:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5380:23:44"
+ },
+ "nativeSrc": "5380:23:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5380:23:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5431:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5431:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5436:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5436:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5427:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5427:3:44"
+ },
+ "nativeSrc": "5427:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5427:12:44"
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5441:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "5441:1:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5420:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5420:6:44"
+ },
+ "nativeSrc": "5420:23:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5420:23:44"
+ },
+ "nativeSrc": "5420:23:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5420:23:44"
+ },
+ {
+ "nativeSrc": "5461:60:44",
+ "nodeType": "YulAssignment",
+ "src": "5461:60:44",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5487:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5487:3:44"
+ },
+ "nativeSrc": "5487:5:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5487:5:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5494:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5494:4:44",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5483:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5483:3:44"
+ },
+ "nativeSrc": "5483:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5483:16:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5501:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5501:1:44",
+ "type": "",
+ "value": "7"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5504:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5504:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5509:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5509:2:44",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5513:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5513:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5518:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5518:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5472:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "5472:10:44"
+ },
+ "nativeSrc": "5472:49:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5472:49:44"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5461:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "5461:7:44"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5558:88:44",
+ "nodeType": "YulBlock",
+ "src": "5558:88:44",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5587:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5587:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5590:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5590:1:44",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5580:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5580:6:44"
+ },
+ "nativeSrc": "5580:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5580:12:44"
+ },
+ "nativeSrc": "5580:12:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5580:12:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5620:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5620:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5623:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5623:4:44",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5613:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5613:6:44"
+ },
+ "nativeSrc": "5613:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5613:15:44"
+ },
+ "nativeSrc": "5613:15:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5613:15:44"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5549:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "5549:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5542:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5542:6:44"
+ },
+ "nativeSrc": "5542:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5542:15:44"
+ },
+ "nativeSrc": "5539:107:44",
+ "nodeType": "YulIf",
+ "src": "5539:107:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5675:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5675:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5680:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5680:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5671:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5671:3:44"
+ },
+ "nativeSrc": "5671:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5671:12:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5691:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "5691:2:44"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5685:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "5685:5:44"
+ },
+ "nativeSrc": "5685:9:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5685:9:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5664:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5664:6:44"
+ },
+ "nativeSrc": "5664:31:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5664:31:44"
+ },
+ "nativeSrc": "5664:31:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5664:31:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mIn",
+ "nativeSrc": "5723:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5723:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5728:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5728:2:44",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5719:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5719:3:44"
+ },
+ "nativeSrc": "5719:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5719:12:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pR",
+ "nativeSrc": "5743:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "5743:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5747:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5747:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5739:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5739:3:44"
+ },
+ "nativeSrc": "5739:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5739:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5733:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "5733:5:44"
+ },
+ "nativeSrc": "5733:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5733:18:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5712:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5712:6:44"
+ },
+ "nativeSrc": "5712:40:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5712:40:44"
+ },
+ "nativeSrc": "5712:40:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5712:40:44"
+ },
+ {
+ "nativeSrc": "5770:60:44",
+ "nodeType": "YulAssignment",
+ "src": "5770:60:44",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "5796:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5796:3:44"
+ },
+ "nativeSrc": "5796:5:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5796:5:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5803:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5803:4:44",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5792:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5792:3:44"
+ },
+ "nativeSrc": "5792:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5792:16:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5810:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:44",
+ "type": "",
+ "value": "6"
+ },
+ {
+ "name": "mIn",
+ "nativeSrc": "5813:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "5813:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5818:3:44",
+ "nodeType": "YulLiteral",
+ "src": "5818:3:44",
+ "type": "",
+ "value": "128"
+ },
+ {
+ "name": "pR",
+ "nativeSrc": "5823:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "5823:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5827:2:44",
+ "nodeType": "YulLiteral",
+ "src": "5827:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "5781:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "5781:10:44"
+ },
+ "nativeSrc": "5781:49:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5781:49:44"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "5770:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "5770:7:44"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5867:88:44",
+ "nodeType": "YulBlock",
+ "src": "5867:88:44",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5896:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5896:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5899:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5899:1:44",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5889:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5889:6:44"
+ },
+ "nativeSrc": "5889:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5889:12:44"
+ },
+ "nativeSrc": "5889:12:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5889:12:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5929:1:44",
+ "nodeType": "YulLiteral",
+ "src": "5929:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5932:4:44",
+ "nodeType": "YulLiteral",
+ "src": "5932:4:44",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "5922:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5922:6:44"
+ },
+ "nativeSrc": "5922:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5922:15:44"
+ },
+ "nativeSrc": "5922:15:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "5922:15:44"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "5858:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "5858:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "5851:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "5851:6:44"
+ },
+ "nativeSrc": "5851:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "5851:15:44"
+ },
+ "nativeSrc": "5848:107:44",
+ "nodeType": "YulIf",
+ "src": "5848:107:44"
+ }
+ ]
+ },
+ "name": "g1_mulAccC",
+ "nativeSrc": "5231:738:44",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pR",
+ "nativeSrc": "5251:2:44",
+ "nodeType": "YulTypedName",
+ "src": "5251:2:44",
+ "type": ""
+ },
+ {
+ "name": "x",
+ "nativeSrc": "5255:1:44",
+ "nodeType": "YulTypedName",
+ "src": "5255:1:44",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nativeSrc": "5258:1:44",
+ "nodeType": "YulTypedName",
+ "src": "5258:1:44",
+ "type": ""
+ },
+ {
+ "name": "s",
+ "nativeSrc": "5261:1:44",
+ "nodeType": "YulTypedName",
+ "src": "5261:1:44",
+ "type": ""
+ }
+ ],
+ "src": "5231:738:44"
+ },
+ {
+ "body": {
+ "nativeSrc": "6043:2820:44",
+ "nodeType": "YulBlock",
+ "src": "6043:2820:44",
+ "statements": [
+ {
+ "nativeSrc": "6061:36:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6061:36:44",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6082:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6082:4:44"
+ },
+ {
+ "name": "pPairing",
+ "nativeSrc": "6088:8:44",
+ "nodeType": "YulIdentifier",
+ "src": "6088:8:44"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6078:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6078:3:44"
+ },
+ "nativeSrc": "6078:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6078:19:44"
+ },
+ "variables": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "6065:9:44",
+ "nodeType": "YulTypedName",
+ "src": "6065:9:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6114:26:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6114:26:44",
+ "value": {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "6130:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6130:4:44"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "6136:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6136:3:44"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6126:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6126:3:44"
+ },
+ "nativeSrc": "6126:14:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6126:14:44"
+ },
+ "variables": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6118:4:44",
+ "nodeType": "YulTypedName",
+ "src": "6118:4:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6165:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6165:4:44"
+ },
+ {
+ "name": "IC0x",
+ "nativeSrc": "6171:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6171:4:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6158:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "6158:6:44"
+ },
+ "nativeSrc": "6158:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6158:18:44"
+ },
+ "nativeSrc": "6158:18:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6158:18:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6204:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6204:4:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6210:2:44",
+ "nodeType": "YulLiteral",
+ "src": "6210:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6200:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6200:3:44"
+ },
+ "nativeSrc": "6200:13:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6200:13:44"
+ },
+ {
+ "name": "IC0y",
+ "nativeSrc": "6215:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6215:4:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6193:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "6193:6:44"
+ },
+ "nativeSrc": "6193:27:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6193:27:44"
+ },
+ "nativeSrc": "6193:27:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6193:27:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6321:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6321:4:44"
+ },
+ {
+ "name": "IC1x",
+ "nativeSrc": "6327:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6327:4:44"
+ },
+ {
+ "name": "IC1y",
+ "nativeSrc": "6333:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6333:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6356:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6356:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6368:1:44",
+ "nodeType": "YulLiteral",
+ "src": "6368:1:44",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6352:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6352:3:44"
+ },
+ "nativeSrc": "6352:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6352:18:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6339:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6339:12:44"
+ },
+ "nativeSrc": "6339:32:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6339:32:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6310:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6310:10:44"
+ },
+ "nativeSrc": "6310:62:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6310:62:44"
+ },
+ "nativeSrc": "6310:62:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6310:62:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6417:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6417:4:44"
+ },
+ {
+ "name": "IC2x",
+ "nativeSrc": "6423:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6423:4:44"
+ },
+ {
+ "name": "IC2y",
+ "nativeSrc": "6429:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6429:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6452:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6452:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6464:2:44",
+ "nodeType": "YulLiteral",
+ "src": "6464:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6448:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6448:3:44"
+ },
+ "nativeSrc": "6448:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6448:19:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6435:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6435:12:44"
+ },
+ "nativeSrc": "6435:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6435:33:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6406:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6406:10:44"
+ },
+ "nativeSrc": "6406:63:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6406:63:44"
+ },
+ "nativeSrc": "6406:63:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6406:63:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6514:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6514:4:44"
+ },
+ {
+ "name": "IC3x",
+ "nativeSrc": "6520:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6520:4:44"
+ },
+ {
+ "name": "IC3y",
+ "nativeSrc": "6526:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6526:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6549:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6549:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6561:2:44",
+ "nodeType": "YulLiteral",
+ "src": "6561:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6545:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6545:3:44"
+ },
+ "nativeSrc": "6545:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6545:19:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6532:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6532:12:44"
+ },
+ "nativeSrc": "6532:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6532:33:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6503:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6503:10:44"
+ },
+ "nativeSrc": "6503:63:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6503:63:44"
+ },
+ "nativeSrc": "6503:63:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6503:63:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6611:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6611:4:44"
+ },
+ {
+ "name": "IC4x",
+ "nativeSrc": "6617:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6617:4:44"
+ },
+ {
+ "name": "IC4y",
+ "nativeSrc": "6623:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6623:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6646:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6646:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6658:2:44",
+ "nodeType": "YulLiteral",
+ "src": "6658:2:44",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6642:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6642:3:44"
+ },
+ "nativeSrc": "6642:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6642:19:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6629:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6629:12:44"
+ },
+ "nativeSrc": "6629:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6629:33:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6600:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6600:10:44"
+ },
+ "nativeSrc": "6600:63:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6600:63:44"
+ },
+ "nativeSrc": "6600:63:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6600:63:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6708:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6708:4:44"
+ },
+ {
+ "name": "IC5x",
+ "nativeSrc": "6714:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6714:4:44"
+ },
+ {
+ "name": "IC5y",
+ "nativeSrc": "6720:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6720:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6743:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6743:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6755:3:44",
+ "nodeType": "YulLiteral",
+ "src": "6755:3:44",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6739:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6739:3:44"
+ },
+ "nativeSrc": "6739:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6739:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6726:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6726:12:44"
+ },
+ "nativeSrc": "6726:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6726:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6697:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6697:10:44"
+ },
+ "nativeSrc": "6697:64:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6697:64:44"
+ },
+ "nativeSrc": "6697:64:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6697:64:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6806:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6806:4:44"
+ },
+ {
+ "name": "IC6x",
+ "nativeSrc": "6812:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6812:4:44"
+ },
+ {
+ "name": "IC6y",
+ "nativeSrc": "6818:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6818:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6841:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6841:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6853:3:44",
+ "nodeType": "YulLiteral",
+ "src": "6853:3:44",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6837:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6837:3:44"
+ },
+ "nativeSrc": "6837:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6837:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6824:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6824:12:44"
+ },
+ "nativeSrc": "6824:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6824:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6795:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6795:10:44"
+ },
+ "nativeSrc": "6795:64:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6795:64:44"
+ },
+ "nativeSrc": "6795:64:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6795:64:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "6904:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6904:4:44"
+ },
+ {
+ "name": "IC7x",
+ "nativeSrc": "6910:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6910:4:44"
+ },
+ {
+ "name": "IC7y",
+ "nativeSrc": "6916:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "6916:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6939:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6939:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6951:3:44",
+ "nodeType": "YulLiteral",
+ "src": "6951:3:44",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6935:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "6935:3:44"
+ },
+ "nativeSrc": "6935:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6935:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "6922:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "6922:12:44"
+ },
+ "nativeSrc": "6922:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6922:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6893:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6893:10:44"
+ },
+ "nativeSrc": "6893:64:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6893:64:44"
+ },
+ "nativeSrc": "6893:64:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6893:64:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pVk",
+ "nativeSrc": "7002:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "7002:4:44"
+ },
+ {
+ "name": "IC8x",
+ "nativeSrc": "7008:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "7008:4:44"
+ },
+ {
+ "name": "IC8y",
+ "nativeSrc": "7014:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "7014:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pubSignals",
+ "nativeSrc": "7037:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "7037:10:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7049:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7049:3:44",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7033:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7033:3:44"
+ },
+ "nativeSrc": "7033:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7033:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7020:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7020:12:44"
+ },
+ "nativeSrc": "7020:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7020:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "g1_mulAccC",
+ "nativeSrc": "6991:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "6991:10:44"
+ },
+ "nativeSrc": "6991:64:44",
+ "nodeType": "YulFunctionCall",
+ "src": "6991:64:44"
+ },
+ "nativeSrc": "6991:64:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "6991:64:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7119:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7119:9:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7143:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7143:2:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7130:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7130:12:44"
+ },
+ "nativeSrc": "7130:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7130:16:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7112:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7112:6:44"
+ },
+ "nativeSrc": "7112:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7112:35:44"
+ },
+ "nativeSrc": "7112:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7112:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7175:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7175:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7186:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7186:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7171:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7171:3:44"
+ },
+ "nativeSrc": "7171:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7171:18:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "q",
+ "nativeSrc": "7199:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "7199:1:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pA",
+ "nativeSrc": "7219:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7219:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7223:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7223:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7215:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7215:3:44"
+ },
+ "nativeSrc": "7215:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7215:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7202:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7202:12:44"
+ },
+ "nativeSrc": "7202:25:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7202:25:44"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7195:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7195:3:44"
+ },
+ "nativeSrc": "7195:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7195:33:44"
+ },
+ {
+ "name": "q",
+ "nativeSrc": "7230:1:44",
+ "nodeType": "YulIdentifier",
+ "src": "7230:1:44"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "7191:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7191:3:44"
+ },
+ "nativeSrc": "7191:41:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7191:41:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7164:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7164:6:44"
+ },
+ "nativeSrc": "7164:69:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7164:69:44"
+ },
+ "nativeSrc": "7164:69:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7164:69:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7283:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7283:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7294:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7294:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7279:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7279:3:44"
+ },
+ "nativeSrc": "7279:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7279:18:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7312:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7312:2:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7299:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7299:12:44"
+ },
+ "nativeSrc": "7299:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7299:16:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7272:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7272:6:44"
+ },
+ "nativeSrc": "7272:44:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7272:44:44"
+ },
+ "nativeSrc": "7272:44:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7272:44:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7344:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7344:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7355:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7355:2:44",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7340:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7340:3:44"
+ },
+ "nativeSrc": "7340:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7340:18:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7377:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7377:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7381:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7381:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7373:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7373:3:44"
+ },
+ "nativeSrc": "7373:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7373:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7360:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7360:12:44"
+ },
+ "nativeSrc": "7360:25:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7360:25:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7333:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7333:6:44"
+ },
+ "nativeSrc": "7333:53:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7333:53:44"
+ },
+ "nativeSrc": "7333:53:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7333:53:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7414:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7414:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7425:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7425:3:44",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7410:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7410:3:44"
+ },
+ "nativeSrc": "7410:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7410:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7448:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7448:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7452:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7452:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7444:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7444:3:44"
+ },
+ "nativeSrc": "7444:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7444:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7431:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7431:12:44"
+ },
+ "nativeSrc": "7431:25:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7431:25:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7403:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7403:6:44"
+ },
+ "nativeSrc": "7403:54:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7403:54:44"
+ },
+ "nativeSrc": "7403:54:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7403:54:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7485:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7485:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7496:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7496:3:44",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7481:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7481:3:44"
+ },
+ "nativeSrc": "7481:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7481:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pB",
+ "nativeSrc": "7519:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "7519:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7523:2:44",
+ "nodeType": "YulLiteral",
+ "src": "7523:2:44",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7515:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7515:3:44"
+ },
+ "nativeSrc": "7515:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7515:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "7502:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "7502:12:44"
+ },
+ "nativeSrc": "7502:25:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7502:25:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7474:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7474:6:44"
+ },
+ "nativeSrc": "7474:54:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7474:54:44"
+ },
+ "nativeSrc": "7474:54:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7474:54:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7583:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7583:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7594:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7594:3:44",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7579:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7579:3:44"
+ },
+ "nativeSrc": "7579:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7579:19:44"
+ },
+ {
+ "name": "alphax",
+ "nativeSrc": "7600:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7600:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7572:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7572:6:44"
+ },
+ "nativeSrc": "7572:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7572:35:44"
+ },
+ "nativeSrc": "7572:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7572:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7635:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7635:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7646:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7646:3:44",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7631:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7631:3:44"
+ },
+ "nativeSrc": "7631:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7631:19:44"
+ },
+ {
+ "name": "alphay",
+ "nativeSrc": "7652:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7652:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7624:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7624:6:44"
+ },
+ "nativeSrc": "7624:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7624:35:44"
+ },
+ "nativeSrc": "7624:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7624:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7713:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7713:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7724:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7724:3:44",
+ "type": "",
+ "value": "256"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7709:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7709:3:44"
+ },
+ "nativeSrc": "7709:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7709:19:44"
+ },
+ {
+ "name": "betax1",
+ "nativeSrc": "7730:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7730:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7702:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7702:6:44"
+ },
+ "nativeSrc": "7702:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7702:35:44"
+ },
+ "nativeSrc": "7702:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7702:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7765:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7765:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7776:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7776:3:44",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7761:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7761:3:44"
+ },
+ "nativeSrc": "7761:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7761:19:44"
+ },
+ {
+ "name": "betax2",
+ "nativeSrc": "7782:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7782:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7754:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7754:6:44"
+ },
+ "nativeSrc": "7754:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7754:35:44"
+ },
+ "nativeSrc": "7754:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7754:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7817:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7817:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7828:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7828:3:44",
+ "type": "",
+ "value": "320"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7813:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7813:3:44"
+ },
+ "nativeSrc": "7813:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7813:19:44"
+ },
+ {
+ "name": "betay1",
+ "nativeSrc": "7834:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7834:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7806:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7806:6:44"
+ },
+ "nativeSrc": "7806:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7806:35:44"
+ },
+ "nativeSrc": "7806:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7806:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7869:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7869:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7880:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7880:3:44",
+ "type": "",
+ "value": "352"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7865:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7865:3:44"
+ },
+ "nativeSrc": "7865:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7865:19:44"
+ },
+ {
+ "name": "betay2",
+ "nativeSrc": "7886:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7886:6:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7858:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7858:6:44"
+ },
+ "nativeSrc": "7858:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7858:35:44"
+ },
+ "nativeSrc": "7858:35:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7858:35:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "7946:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "7946:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7957:3:44",
+ "nodeType": "YulLiteral",
+ "src": "7957:3:44",
+ "type": "",
+ "value": "384"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7942:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7942:3:44"
+ },
+ "nativeSrc": "7942:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7942:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "7973:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "7973:4:44"
+ },
+ {
+ "name": "pVk",
+ "nativeSrc": "7979:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7979:3:44"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7969:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "7969:3:44"
+ },
+ "nativeSrc": "7969:14:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7969:14:44"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7963:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "7963:5:44"
+ },
+ "nativeSrc": "7963:21:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7963:21:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7935:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "7935:6:44"
+ },
+ "nativeSrc": "7935:50:44",
+ "nodeType": "YulFunctionCall",
+ "src": "7935:50:44"
+ },
+ "nativeSrc": "7935:50:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "7935:50:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8013:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8013:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8024:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8024:3:44",
+ "type": "",
+ "value": "416"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8009:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8009:3:44"
+ },
+ "nativeSrc": "8009:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8009:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8040:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "8040:4:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pVk",
+ "nativeSrc": "8050:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8050:3:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8055:2:44",
+ "nodeType": "YulLiteral",
+ "src": "8055:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8046:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8046:3:44"
+ },
+ "nativeSrc": "8046:12:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8046:12:44"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8036:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8036:3:44"
+ },
+ "nativeSrc": "8036:23:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8036:23:44"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8030:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "8030:5:44"
+ },
+ "nativeSrc": "8030:30:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8030:30:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8002:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8002:6:44"
+ },
+ "nativeSrc": "8002:59:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8002:59:44"
+ },
+ "nativeSrc": "8002:59:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8002:59:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8117:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8117:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8128:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8128:3:44",
+ "type": "",
+ "value": "448"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8113:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8113:3:44"
+ },
+ "nativeSrc": "8113:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8113:19:44"
+ },
+ {
+ "name": "gammax1",
+ "nativeSrc": "8134:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8134:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8106:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8106:6:44"
+ },
+ "nativeSrc": "8106:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8106:36:44"
+ },
+ "nativeSrc": "8106:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8106:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8170:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8170:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8181:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8181:3:44",
+ "type": "",
+ "value": "480"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8166:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8166:3:44"
+ },
+ "nativeSrc": "8166:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8166:19:44"
+ },
+ {
+ "name": "gammax2",
+ "nativeSrc": "8187:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8187:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8159:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8159:6:44"
+ },
+ "nativeSrc": "8159:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8159:36:44"
+ },
+ "nativeSrc": "8159:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8159:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8223:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8223:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8234:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8234:3:44",
+ "type": "",
+ "value": "512"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8219:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8219:3:44"
+ },
+ "nativeSrc": "8219:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8219:19:44"
+ },
+ {
+ "name": "gammay1",
+ "nativeSrc": "8240:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8240:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8212:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8212:6:44"
+ },
+ "nativeSrc": "8212:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8212:36:44"
+ },
+ "nativeSrc": "8212:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8212:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8276:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8276:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8287:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8287:3:44",
+ "type": "",
+ "value": "544"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8272:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8272:3:44"
+ },
+ "nativeSrc": "8272:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8272:19:44"
+ },
+ {
+ "name": "gammay2",
+ "nativeSrc": "8293:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8293:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8265:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8265:6:44"
+ },
+ "nativeSrc": "8265:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8265:36:44"
+ },
+ "nativeSrc": "8265:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8265:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8351:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8351:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8362:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8362:3:44",
+ "type": "",
+ "value": "576"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8347:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8347:3:44"
+ },
+ "nativeSrc": "8347:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8347:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8381:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "8381:2:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8368:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "8368:12:44"
+ },
+ "nativeSrc": "8368:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8368:16:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8340:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8340:6:44"
+ },
+ "nativeSrc": "8340:45:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8340:45:44"
+ },
+ "nativeSrc": "8340:45:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8340:45:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8413:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8413:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8424:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8424:3:44",
+ "type": "",
+ "value": "608"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8409:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8409:3:44"
+ },
+ "nativeSrc": "8409:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8409:19:44"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pC",
+ "nativeSrc": "8447:2:44",
+ "nodeType": "YulIdentifier",
+ "src": "8447:2:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8451:2:44",
+ "nodeType": "YulLiteral",
+ "src": "8451:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8443:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8443:3:44"
+ },
+ "nativeSrc": "8443:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8443:11:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "8430:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "8430:12:44"
+ },
+ "nativeSrc": "8430:25:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8430:25:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8402:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8402:6:44"
+ },
+ "nativeSrc": "8402:54:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8402:54:44"
+ },
+ "nativeSrc": "8402:54:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8402:54:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8511:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8511:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8522:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8522:3:44",
+ "type": "",
+ "value": "640"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8507:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8507:3:44"
+ },
+ "nativeSrc": "8507:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8507:19:44"
+ },
+ {
+ "name": "deltax1",
+ "nativeSrc": "8528:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8528:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8500:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8500:6:44"
+ },
+ "nativeSrc": "8500:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8500:36:44"
+ },
+ "nativeSrc": "8500:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8500:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8564:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8564:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8575:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8575:3:44",
+ "type": "",
+ "value": "672"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8560:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8560:3:44"
+ },
+ "nativeSrc": "8560:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8560:19:44"
+ },
+ {
+ "name": "deltax2",
+ "nativeSrc": "8581:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8581:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8553:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8553:6:44"
+ },
+ "nativeSrc": "8553:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8553:36:44"
+ },
+ "nativeSrc": "8553:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8553:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8617:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8617:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8628:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8628:3:44",
+ "type": "",
+ "value": "704"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8613:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8613:3:44"
+ },
+ "nativeSrc": "8613:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8613:19:44"
+ },
+ {
+ "name": "deltay1",
+ "nativeSrc": "8634:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8634:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8606:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8606:6:44"
+ },
+ "nativeSrc": "8606:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8606:36:44"
+ },
+ "nativeSrc": "8606:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8606:36:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8670:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8670:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8681:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8681:3:44",
+ "type": "",
+ "value": "736"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8666:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8666:3:44"
+ },
+ "nativeSrc": "8666:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8666:19:44"
+ },
+ {
+ "name": "deltay2",
+ "nativeSrc": "8687:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8687:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8659:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8659:6:44"
+ },
+ "nativeSrc": "8659:36:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8659:36:44"
+ },
+ "nativeSrc": "8659:36:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8659:36:44"
+ },
+ {
+ "nativeSrc": "8714:79:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8714:79:44",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "gas",
+ "nativeSrc": "8744:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8744:3:44"
+ },
+ "nativeSrc": "8744:5:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8744:5:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8751:4:44",
+ "nodeType": "YulLiteral",
+ "src": "8751:4:44",
+ "type": "",
+ "value": "2000"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8740:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8740:3:44"
+ },
+ "nativeSrc": "8740:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8740:16:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8758:1:44",
+ "nodeType": "YulLiteral",
+ "src": "8758:1:44",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8761:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8761:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8772:3:44",
+ "nodeType": "YulLiteral",
+ "src": "8772:3:44",
+ "type": "",
+ "value": "768"
+ },
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8777:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8777:9:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8788:4:44",
+ "nodeType": "YulLiteral",
+ "src": "8788:4:44",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "staticcall",
+ "nativeSrc": "8729:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "8729:10:44"
+ },
+ "nativeSrc": "8729:64:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8729:64:44"
+ },
+ "variables": [
+ {
+ "name": "success",
+ "nativeSrc": "8718:7:44",
+ "nodeType": "YulTypedName",
+ "src": "8718:7:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8811:38:44",
+ "nodeType": "YulAssignment",
+ "src": "8811:38:44",
+ "value": {
+ "arguments": [
+ {
+ "name": "success",
+ "nativeSrc": "8823:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "8823:7:44"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_pPairing",
+ "nativeSrc": "8838:9:44",
+ "nodeType": "YulIdentifier",
+ "src": "8838:9:44"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8832:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "8832:5:44"
+ },
+ "nativeSrc": "8832:16:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8832:16:44"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8819:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8819:3:44"
+ },
+ "nativeSrc": "8819:30:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8819:30:44"
+ },
+ "variableNames": [
+ {
+ "name": "isOk",
+ "nativeSrc": "8811:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "8811:4:44"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checkPairing",
+ "nativeSrc": "5983:2880:44",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pA",
+ "nativeSrc": "6005:2:44",
+ "nodeType": "YulTypedName",
+ "src": "6005:2:44",
+ "type": ""
+ },
+ {
+ "name": "pB",
+ "nativeSrc": "6009:2:44",
+ "nodeType": "YulTypedName",
+ "src": "6009:2:44",
+ "type": ""
+ },
+ {
+ "name": "pC",
+ "nativeSrc": "6013:2:44",
+ "nodeType": "YulTypedName",
+ "src": "6013:2:44",
+ "type": ""
+ },
+ {
+ "name": "pubSignals",
+ "nativeSrc": "6017:10:44",
+ "nodeType": "YulTypedName",
+ "src": "6017:10:44",
+ "type": ""
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "6029:4:44",
+ "nodeType": "YulTypedName",
+ "src": "6029:4:44",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "isOk",
+ "nativeSrc": "6038:4:44",
+ "nodeType": "YulTypedName",
+ "src": "6038:4:44",
+ "type": ""
+ }
+ ],
+ "src": "5983:2880:44"
+ },
+ {
+ "nativeSrc": "8877:23:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8877:23:44",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8895:4:44",
+ "nodeType": "YulLiteral",
+ "src": "8895:4:44",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8889:5:44",
+ "nodeType": "YulIdentifier",
+ "src": "8889:5:44"
+ },
+ "nativeSrc": "8889:11:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8889:11:44"
+ },
+ "variables": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8881:4:44",
+ "nodeType": "YulTypedName",
+ "src": "8881:4:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8920:4:44",
+ "nodeType": "YulLiteral",
+ "src": "8920:4:44",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pMem",
+ "nativeSrc": "8930:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "8930:4:44"
+ },
+ {
+ "name": "pLastMem",
+ "nativeSrc": "8936:8:44",
+ "nodeType": "YulIdentifier",
+ "src": "8936:8:44"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8926:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "8926:3:44"
+ },
+ "nativeSrc": "8926:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8926:19:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8913:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "8913:6:44"
+ },
+ "nativeSrc": "8913:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "8913:33:44"
+ },
+ "nativeSrc": "8913:33:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "8913:33:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9052:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9052:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9065:1:44",
+ "nodeType": "YulLiteral",
+ "src": "9065:1:44",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9048:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9048:3:44"
+ },
+ "nativeSrc": "9048:19:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9048:19:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9035:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9035:12:44"
+ },
+ "nativeSrc": "9035:33:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9035:33:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9024:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9024:10:44"
+ },
+ "nativeSrc": "9024:45:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9024:45:44"
+ },
+ "nativeSrc": "9024:45:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9024:45:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9123:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9123:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9136:2:44",
+ "nodeType": "YulLiteral",
+ "src": "9136:2:44",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9119:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9119:3:44"
+ },
+ "nativeSrc": "9119:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9119:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9106:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9106:12:44"
+ },
+ "nativeSrc": "9106:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9106:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9095:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9095:10:44"
+ },
+ "nativeSrc": "9095:46:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9095:46:44"
+ },
+ "nativeSrc": "9095:46:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9095:46:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9195:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9195:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9208:2:44",
+ "nodeType": "YulLiteral",
+ "src": "9208:2:44",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9191:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9191:3:44"
+ },
+ "nativeSrc": "9191:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9191:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9178:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9178:12:44"
+ },
+ "nativeSrc": "9178:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9178:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9167:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9167:10:44"
+ },
+ "nativeSrc": "9167:46:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9167:46:44"
+ },
+ "nativeSrc": "9167:46:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9167:46:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9267:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9267:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9280:2:44",
+ "nodeType": "YulLiteral",
+ "src": "9280:2:44",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9263:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9263:3:44"
+ },
+ "nativeSrc": "9263:20:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9263:20:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9250:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9250:12:44"
+ },
+ "nativeSrc": "9250:34:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9250:34:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9239:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9239:10:44"
+ },
+ "nativeSrc": "9239:46:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9239:46:44"
+ },
+ "nativeSrc": "9239:46:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9239:46:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9339:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9339:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9352:3:44",
+ "nodeType": "YulLiteral",
+ "src": "9352:3:44",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9335:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9335:3:44"
+ },
+ "nativeSrc": "9335:21:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9335:21:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9322:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9322:12:44"
+ },
+ "nativeSrc": "9322:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9322:35:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9311:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9311:10:44"
+ },
+ "nativeSrc": "9311:47:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9311:47:44"
+ },
+ "nativeSrc": "9311:47:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9311:47:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9412:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9412:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9425:3:44",
+ "nodeType": "YulLiteral",
+ "src": "9425:3:44",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9408:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9408:3:44"
+ },
+ "nativeSrc": "9408:21:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9408:21:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9395:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9395:12:44"
+ },
+ "nativeSrc": "9395:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9395:35:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9384:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9384:10:44"
+ },
+ "nativeSrc": "9384:47:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9384:47:44"
+ },
+ "nativeSrc": "9384:47:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9384:47:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9485:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9485:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9498:3:44",
+ "nodeType": "YulLiteral",
+ "src": "9498:3:44",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9481:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9481:3:44"
+ },
+ "nativeSrc": "9481:21:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9481:21:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9468:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9468:12:44"
+ },
+ "nativeSrc": "9468:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9468:35:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9457:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9457:10:44"
+ },
+ "nativeSrc": "9457:47:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9457:47:44"
+ },
+ "nativeSrc": "9457:47:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9457:47:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9558:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9558:11:44"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9571:3:44",
+ "nodeType": "YulLiteral",
+ "src": "9571:3:44",
+ "type": "",
+ "value": "224"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9554:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9554:3:44"
+ },
+ "nativeSrc": "9554:21:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9554:21:44"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "9541:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9541:12:44"
+ },
+ "nativeSrc": "9541:35:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9541:35:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkField",
+ "nativeSrc": "9530:10:44",
+ "nodeType": "YulIdentifier",
+ "src": "9530:10:44"
+ },
+ "nativeSrc": "9530:47:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9530:47:44"
+ },
+ "nativeSrc": "9530:47:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9530:47:44"
+ },
+ {
+ "nativeSrc": "9644:61:44",
+ "nodeType": "YulVariableDeclaration",
+ "src": "9644:61:44",
+ "value": {
+ "arguments": [
+ {
+ "name": "_pA",
+ "nativeSrc": "9672:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9672:3:44"
+ },
+ {
+ "name": "_pB",
+ "nativeSrc": "9677:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9677:3:44"
+ },
+ {
+ "name": "_pC",
+ "nativeSrc": "9682:3:44",
+ "nodeType": "YulIdentifier",
+ "src": "9682:3:44"
+ },
+ {
+ "name": "_pubSignals",
+ "nativeSrc": "9687:11:44",
+ "nodeType": "YulIdentifier",
+ "src": "9687:11:44"
+ },
+ {
+ "name": "pMem",
+ "nativeSrc": "9700:4:44",
+ "nodeType": "YulIdentifier",
+ "src": "9700:4:44"
+ }
+ ],
+ "functionName": {
+ "name": "checkPairing",
+ "nativeSrc": "9659:12:44",
+ "nodeType": "YulIdentifier",
+ "src": "9659:12:44"
+ },
+ "nativeSrc": "9659:46:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9659:46:44"
+ },
+ "variables": [
+ {
+ "name": "isValid",
+ "nativeSrc": "9648:7:44",
+ "nodeType": "YulTypedName",
+ "src": "9648:7:44",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9726:1:44",
+ "nodeType": "YulLiteral",
+ "src": "9726:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "isValid",
+ "nativeSrc": "9729:7:44",
+ "nodeType": "YulIdentifier",
+ "src": "9729:7:44"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "9719:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "9719:6:44"
+ },
+ "nativeSrc": "9719:18:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9719:18:44"
+ },
+ "nativeSrc": "9719:18:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9719:18:44"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9758:1:44",
+ "nodeType": "YulLiteral",
+ "src": "9758:1:44",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9761:4:44",
+ "nodeType": "YulLiteral",
+ "src": "9761:4:44",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "return",
+ "nativeSrc": "9751:6:44",
+ "nodeType": "YulIdentifier",
+ "src": "9751:6:44"
+ },
+ "nativeSrc": "9751:15:44",
+ "nodeType": "YulFunctionCall",
+ "src": "9751:15:44"
+ },
+ "nativeSrc": "9751:15:44",
+ "nodeType": "YulExpressionStatement",
+ "src": "9751:15:44"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18149,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6171:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18152,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6215:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18155,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6327:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18158,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6333:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18161,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6423:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18164,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6429:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18167,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6520:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18170,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6526:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18173,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6617:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18176,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6623:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18179,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6714:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18182,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6720:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18185,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6812:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18188,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6818:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18191,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6910:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18194,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6916:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18197,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7008:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18200,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7014:4:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18213,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9672:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18219,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9677:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18223,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9682:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9052:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9123:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9195:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9267:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9339:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9412:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9485:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9558:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18227,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9687:11:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18107,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7600:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18110,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7652:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18113,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7730:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18116,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7782:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18119,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7834:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18122,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7886:6:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18137,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8528:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18140,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8581:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18143,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8634:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18146,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8687:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18125,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8134:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18128,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8187:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18131,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8240:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18134,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8293:7:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18209,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8936:8:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18206,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6088:8:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18203,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "6136:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18203,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7979:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18203,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8050:3:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18104,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7199:1:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18104,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7230:1:44",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18101,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5021:1:44",
+ "valueSize": 1
+ }
+ ],
+ "id": 18232,
+ "nodeType": "InlineAssembly",
+ "src": "4941:4836:44"
+ }
+ ]
+ },
+ "functionSelector": "c9219a7a",
+ "id": 18234,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "verifyProof",
+ "nameLocation": "4793:11:44",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18228,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18213,
+ "mutability": "mutable",
+ "name": "_pA",
+ "nameLocation": "4822:3:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18234,
+ "src": "4805:20:44",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18210,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4805:4:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18212,
+ "length": {
+ "hexValue": "32",
+ "id": 18211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4810:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4805:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18219,
+ "mutability": "mutable",
+ "name": "_pB",
+ "nameLocation": "4847:3:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18234,
+ "src": "4827:23:44",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr",
+ "typeString": "uint256[2][2]"
+ },
+ "typeName": {
+ "baseType": {
+ "baseType": {
+ "id": 18214,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4827:4:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18216,
+ "length": {
+ "hexValue": "32",
+ "id": 18215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4832:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4827:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "id": 18218,
+ "length": {
+ "hexValue": "32",
+ "id": 18217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4835:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4827:10:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
+ "typeString": "uint256[2][2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18223,
+ "mutability": "mutable",
+ "name": "_pC",
+ "nameLocation": "4869:3:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18234,
+ "src": "4852:20:44",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr",
+ "typeString": "uint256[2]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18220,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4852:4:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18222,
+ "length": {
+ "hexValue": "32",
+ "id": 18221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4857:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4852:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
+ "typeString": "uint256[2]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18227,
+ "mutability": "mutable",
+ "name": "_pubSignals",
+ "nameLocation": "4891:11:44",
+ "nodeType": "VariableDeclaration",
+ "scope": 18234,
+ "src": "4874:28:44",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr",
+ "typeString": "uint256[8]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 18224,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4874:4:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 18226,
+ "length": {
+ "hexValue": "38",
+ "id": 18225,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4879:1:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "nodeType": "ArrayTypeName",
+ "src": "4874:7:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
+ "typeString": "uint256[8]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4804:99:44"
+ },
+ "returnParameters": {
+ "id": 18231,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18230,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18234,
+ "src": "4925:4:44",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18229,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4925:4:44",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4924:6:44"
+ },
+ "scope": 18235,
+ "src": "4784:5000:44",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 18236,
+ "src": "831:8956:44",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "798:8990:44"
+ },
+ "id": 44
+ },
+ "solidity-bytes-utils/contracts/BytesLib.sol": {
+ "ast": {
+ "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol",
+ "exportedSymbols": {
+ "BytesLib": [
+ 18568
+ ]
+ },
+ "id": 18569,
+ "license": "Unlicense",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 18237,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "336:31:45"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "BytesLib",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 18568,
+ "linearizedBaseContracts": [
+ 18568
+ ],
+ "name": "BytesLib",
+ "nameLocation": "378:8:45",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 18252,
+ "nodeType": "Block",
+ "src": "545:2803:45",
+ "statements": [
+ {
+ "assignments": [
+ 18247
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18247,
+ "mutability": "mutable",
+ "name": "tempBytes",
+ "nameLocation": "568:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18252,
+ "src": "555:22:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18246,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "555:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18248,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "555:22:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "597:2718:45",
+ "nodeType": "YulBlock",
+ "src": "597:2718:45",
+ "statements": [
+ {
+ "nativeSrc": "741:24:45",
+ "nodeType": "YulAssignment",
+ "src": "741:24:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "760:4:45",
+ "nodeType": "YulLiteral",
+ "src": "760:4:45",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "754:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "754:5:45"
+ },
+ "nativeSrc": "754:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "754:11:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "741:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "741:9:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "897:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "897:30:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes",
+ "nativeSrc": "917:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "917:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "911:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "911:5:45"
+ },
+ "nativeSrc": "911:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "911:16:45"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "901:6:45",
+ "nodeType": "YulTypedName",
+ "src": "901:6:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "947:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "947:9:45"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "958:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "958:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "940:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "940:6:45"
+ },
+ "nativeSrc": "940:25:45",
+ "nodeType": "YulFunctionCall",
+ "src": "940:25:45"
+ },
+ "nativeSrc": "940:25:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "940:25:45"
+ },
+ {
+ "nativeSrc": "1175:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1175:30:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "1189:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "1189:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1200:4:45",
+ "nodeType": "YulLiteral",
+ "src": "1200:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1185:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1185:3:45"
+ },
+ "nativeSrc": "1185:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1185:20:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "1179:2:45",
+ "nodeType": "YulTypedName",
+ "src": "1179:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1330:26:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1330:26:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "1345:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1345:2:45"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "1349:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "1349:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1341:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1341:3:45"
+ },
+ "nativeSrc": "1341:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1341:15:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "1334:3:45",
+ "nodeType": "YulTypedName",
+ "src": "1334:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "1733:162:45",
+ "nodeType": "YulBlock",
+ "src": "1733:162:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "1867:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1867:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "1877:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1877:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1871:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "1871:5:45"
+ },
+ "nativeSrc": "1871:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1871:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1860:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "1860:6:45"
+ },
+ "nativeSrc": "1860:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1860:21:45"
+ },
+ "nativeSrc": "1860:21:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "1860:21:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "1566:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1566:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "1570:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1570:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "1563:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1563:2:45"
+ },
+ "nativeSrc": "1563:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1563:11:45"
+ },
+ "nativeSrc": "1370:525:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "1575:157:45",
+ "nodeType": "YulBlock",
+ "src": "1575:157:45",
+ "statements": [
+ {
+ "nativeSrc": "1663:19:45",
+ "nodeType": "YulAssignment",
+ "src": "1663:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "1673:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1673:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1677:4:45",
+ "nodeType": "YulLiteral",
+ "src": "1677:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1669:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1669:3:45"
+ },
+ "nativeSrc": "1669:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1669:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "1663:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1663:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1699:19:45",
+ "nodeType": "YulAssignment",
+ "src": "1699:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "1709:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1709:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1713:4:45",
+ "nodeType": "YulLiteral",
+ "src": "1713:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1705:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1705:3:45"
+ },
+ "nativeSrc": "1705:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1705:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "cc",
+ "nativeSrc": "1699:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "1699:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "1374:188:45",
+ "nodeType": "YulBlock",
+ "src": "1374:188:45",
+ "statements": [
+ {
+ "nativeSrc": "1518:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1518:30:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes",
+ "nativeSrc": "1532:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "1532:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1543:4:45",
+ "nodeType": "YulLiteral",
+ "src": "1543:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1528:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "1528:3:45"
+ },
+ "nativeSrc": "1528:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "1528:20:45"
+ },
+ "variables": [
+ {
+ "name": "cc",
+ "nativeSrc": "1522:2:45",
+ "nodeType": "YulTypedName",
+ "src": "1522:2:45",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "1370:525:45"
+ },
+ {
+ "nativeSrc": "2096:27:45",
+ "nodeType": "YulAssignment",
+ "src": "2096:27:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "2112:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "2112:10:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2106:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "2106:5:45"
+ },
+ "nativeSrc": "2106:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2106:17:45"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nativeSrc": "2096:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "2096:6:45"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "2143:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "2143:9:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "2158:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "2172:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "2172:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2166:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "2166:5:45"
+ },
+ "nativeSrc": "2166:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2166:16:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2154:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2154:3:45"
+ },
+ "nativeSrc": "2154:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2154:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2136:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "2136:6:45"
+ },
+ "nativeSrc": "2136:48:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2136:48:45"
+ },
+ "nativeSrc": "2136:48:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "2136:48:45"
+ },
+ {
+ "nativeSrc": "2322:9:45",
+ "nodeType": "YulAssignment",
+ "src": "2322:9:45",
+ "value": {
+ "name": "end",
+ "nativeSrc": "2328:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2328:3:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "2322:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2322:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2458:22:45",
+ "nodeType": "YulAssignment",
+ "src": "2458:22:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "2469:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2469:2:45"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "2473:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "2473:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2465:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2465:3:45"
+ },
+ "nativeSrc": "2465:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2465:15:45"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "2458:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2458:3:45"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "2662:53:45",
+ "nodeType": "YulBlock",
+ "src": "2662:53:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "2687:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2687:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "2697:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2697:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2691:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "2691:5:45"
+ },
+ "nativeSrc": "2691:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2691:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2680:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "2680:6:45"
+ },
+ "nativeSrc": "2680:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2680:21:45"
+ },
+ "nativeSrc": "2680:21:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "2680:21:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "2565:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2565:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "2569:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2569:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "2562:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:45"
+ },
+ "nativeSrc": "2562:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2562:11:45"
+ },
+ "nativeSrc": "2494:221:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "2574:87:45",
+ "nodeType": "YulBlock",
+ "src": "2574:87:45",
+ "statements": [
+ {
+ "nativeSrc": "2592:19:45",
+ "nodeType": "YulAssignment",
+ "src": "2592:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "2602:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2602:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2606:4:45",
+ "nodeType": "YulLiteral",
+ "src": "2606:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2598:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2598:3:45"
+ },
+ "nativeSrc": "2598:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2598:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "2592:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2592:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2628:19:45",
+ "nodeType": "YulAssignment",
+ "src": "2628:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "2638:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2638:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2642:4:45",
+ "nodeType": "YulLiteral",
+ "src": "2642:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2634:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2634:3:45"
+ },
+ "nativeSrc": "2634:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2634:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "cc",
+ "nativeSrc": "2628:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "2628:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "2498:63:45",
+ "nodeType": "YulBlock",
+ "src": "2498:63:45",
+ "statements": [
+ {
+ "nativeSrc": "2516:31:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "2516:31:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "2530:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "2530:10:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2542:4:45",
+ "nodeType": "YulLiteral",
+ "src": "2542:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2526:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "2526:3:45"
+ },
+ "nativeSrc": "2526:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "2526:21:45"
+ },
+ "variables": [
+ {
+ "name": "cc",
+ "nativeSrc": "2520:2:45",
+ "nodeType": "YulTypedName",
+ "src": "2520:2:45",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "2494:221:45"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3147:4:45",
+ "nodeType": "YulLiteral",
+ "src": "3147:4:45",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "end",
+ "nativeSrc": "3180:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3180:3:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "3196:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "3196:6:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_preBytes",
+ "nativeSrc": "3210:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "3210:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "3204:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "3204:5:45"
+ },
+ "nativeSrc": "3204:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3204:16:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3192:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3192:3:45"
+ },
+ "nativeSrc": "3192:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3192:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "3185:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "3185:6:45"
+ },
+ "nativeSrc": "3185:37:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3185:37:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3176:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3176:3:45"
+ },
+ "nativeSrc": "3176:47:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3176:47:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3225:2:45",
+ "nodeType": "YulLiteral",
+ "src": "3225:2:45",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3172:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3172:3:45"
+ },
+ "nativeSrc": "3172:56:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3172:56:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3248:2:45",
+ "nodeType": "YulLiteral",
+ "src": "3248:2:45",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "3244:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3244:3:45"
+ },
+ "nativeSrc": "3244:7:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3244:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "3153:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "3153:3:45"
+ },
+ "nativeSrc": "3153:151:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3153:151:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3140:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "3140:6:45"
+ },
+ "nativeSrc": "3140:165:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3140:165:45"
+ },
+ "nativeSrc": "3140:165:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "3140:165:45"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18241,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2112:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18241,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2530:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18239,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1532:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18239,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "3210:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18239,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "917:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18247,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1189:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18247,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2143:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18247,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "2172:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18247,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "741:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18247,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "947:9:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18249,
+ "nodeType": "InlineAssembly",
+ "src": "588:2727:45"
+ },
+ {
+ "expression": {
+ "id": 18250,
+ "name": "tempBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18247,
+ "src": "3332:9:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 18245,
+ "id": 18251,
+ "nodeType": "Return",
+ "src": "3325:16:45"
+ }
+ ]
+ },
+ "id": 18253,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "concat",
+ "nameLocation": "402:6:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18242,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18239,
+ "mutability": "mutable",
+ "name": "_preBytes",
+ "nameLocation": "431:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18253,
+ "src": "418:22:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18238,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "418:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18241,
+ "mutability": "mutable",
+ "name": "_postBytes",
+ "nameLocation": "463:10:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18253,
+ "src": "450:23:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18240,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "450:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "408:71:45"
+ },
+ "returnParameters": {
+ "id": 18245,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18244,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18253,
+ "src": "527:12:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18243,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "527:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "526:14:45"
+ },
+ "scope": 18568,
+ "src": "393:2955:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18261,
+ "nodeType": "Block",
+ "src": "3436:6015:45",
+ "statements": [
+ {
+ "AST": {
+ "nativeSrc": "3455:5990:45",
+ "nodeType": "YulBlock",
+ "src": "3455:5990:45",
+ "statements": [
+ {
+ "nativeSrc": "3678:34:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3678:34:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "3697:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "3697:14:45"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "3691:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "3691:5:45"
+ },
+ "nativeSrc": "3691:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "3691:21:45"
+ },
+ "variables": [
+ {
+ "name": "fslot",
+ "nativeSrc": "3682:5:45",
+ "nodeType": "YulTypedName",
+ "src": "3682:5:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4205:76:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4205:76:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "4228:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "4228:5:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4243:5:45",
+ "nodeType": "YulLiteral",
+ "src": "4243:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "4261:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "4261:5:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4268:1:45",
+ "nodeType": "YulLiteral",
+ "src": "4268:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "4257:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4257:3:45"
+ },
+ "nativeSrc": "4257:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4257:13:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "4250:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "4250:6:45"
+ },
+ "nativeSrc": "4250:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4250:21:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "4239:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4239:3:45"
+ },
+ "nativeSrc": "4239:33:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4239:33:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4274:1:45",
+ "nodeType": "YulLiteral",
+ "src": "4274:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "4235:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4235:3:45"
+ },
+ "nativeSrc": "4235:41:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4235:41:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "4224:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4224:3:45"
+ },
+ "nativeSrc": "4224:53:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4224:53:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4279:1:45",
+ "nodeType": "YulLiteral",
+ "src": "4279:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "4220:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4220:3:45"
+ },
+ "nativeSrc": "4220:61:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4220:61:45"
+ },
+ "variables": [
+ {
+ "name": "slength",
+ "nativeSrc": "4209:7:45",
+ "nodeType": "YulTypedName",
+ "src": "4209:7:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4294:32:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4294:32:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "4315:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "4315:10:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "4309:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "4309:5:45"
+ },
+ "nativeSrc": "4309:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4309:17:45"
+ },
+ "variables": [
+ {
+ "name": "mlength",
+ "nativeSrc": "4298:7:45",
+ "nodeType": "YulTypedName",
+ "src": "4298:7:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4339:38:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4339:38:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "4360:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "4360:7:45"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "4369:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "4369:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4356:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4356:3:45"
+ },
+ "nativeSrc": "4356:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4356:21:45"
+ },
+ "variables": [
+ {
+ "name": "newlength",
+ "nativeSrc": "4343:9:45",
+ "nodeType": "YulTypedName",
+ "src": "4343:9:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "4710:1485:45",
+ "nodeType": "YulBlock",
+ "src": "4710:1485:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "4991:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "4991:14:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "5303:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "5303:5:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "5521:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "5521:10:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5533:4:45",
+ "nodeType": "YulLiteral",
+ "src": "5533:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5517:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5517:3:45"
+ },
+ "nativeSrc": "5517:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5517:21:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5511:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "5511:5:45"
+ },
+ "nativeSrc": "5511:28:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5511:28:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5648:5:45",
+ "nodeType": "YulLiteral",
+ "src": "5648:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5659:2:45",
+ "nodeType": "YulLiteral",
+ "src": "5659:2:45",
+ "type": "",
+ "value": "32"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "5663:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "5663:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5655:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5655:3:45"
+ },
+ "nativeSrc": "5655:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5655:16:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "5644:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5644:3:45"
+ },
+ "nativeSrc": "5644:28:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5644:28:45"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "5404:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5404:3:45"
+ },
+ "nativeSrc": "5404:302:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5404:302:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5895:5:45",
+ "nodeType": "YulLiteral",
+ "src": "5895:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5906:2:45",
+ "nodeType": "YulLiteral",
+ "src": "5906:2:45",
+ "type": "",
+ "value": "32"
+ },
+ {
+ "name": "newlength",
+ "nativeSrc": "5910:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "5910:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5902:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5902:3:45"
+ },
+ "nativeSrc": "5902:18:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5902:18:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "5891:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5891:3:45"
+ },
+ "nativeSrc": "5891:30:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5891:30:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "5367:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5367:3:45"
+ },
+ "nativeSrc": "5367:584:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5367:584:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mlength",
+ "nativeSrc": "6104:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "6104:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6113:1:45",
+ "nodeType": "YulLiteral",
+ "src": "6113:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "6100:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "6100:3:45"
+ },
+ "nativeSrc": "6100:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6100:15:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5334:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5334:3:45"
+ },
+ "nativeSrc": "5334:807:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5334:807:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5134:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "5134:3:45"
+ },
+ "nativeSrc": "5134:1029:45",
+ "nodeType": "YulFunctionCall",
+ "src": "5134:1029:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "4963:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "4963:6:45"
+ },
+ "nativeSrc": "4963:1218:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4963:1218:45"
+ },
+ "nativeSrc": "4963:1218:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "4963:1218:45"
+ }
+ ]
+ },
+ "nativeSrc": "4703:1492:45",
+ "nodeType": "YulCase",
+ "src": "4703:1492:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "4708:1:45",
+ "nodeType": "YulLiteral",
+ "src": "4708:1:45",
+ "type": "",
+ "value": "2"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "6215:1935:45",
+ "nodeType": "YulBlock",
+ "src": "6215:1935:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6424:3:45",
+ "nodeType": "YulLiteral",
+ "src": "6424:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "6429:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "6429:14:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6417:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "6417:6:45"
+ },
+ "nativeSrc": "6417:27:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6417:27:45"
+ },
+ "nativeSrc": "6417:27:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "6417:27:45"
+ },
+ {
+ "nativeSrc": "6461:53:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6461:53:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6485:3:45",
+ "nodeType": "YulLiteral",
+ "src": "6485:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6490:4:45",
+ "nodeType": "YulLiteral",
+ "src": "6490:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "6475:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "6475:9:45"
+ },
+ "nativeSrc": "6475:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6475:20:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "6501:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "6501:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6510:2:45",
+ "nodeType": "YulLiteral",
+ "src": "6510:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "6497:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "6497:3:45"
+ },
+ "nativeSrc": "6497:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6497:16:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6471:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "6471:3:45"
+ },
+ "nativeSrc": "6471:43:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6471:43:45"
+ },
+ "variables": [
+ {
+ "name": "sc",
+ "nativeSrc": "6465:2:45",
+ "nodeType": "YulTypedName",
+ "src": "6465:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "6574:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "6574:14:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newlength",
+ "nativeSrc": "6598:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "6598:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6609:1:45",
+ "nodeType": "YulLiteral",
+ "src": "6609:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "6594:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "6594:3:45"
+ },
+ "nativeSrc": "6594:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6594:17:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6613:1:45",
+ "nodeType": "YulLiteral",
+ "src": "6613:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6590:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "6590:3:45"
+ },
+ "nativeSrc": "6590:25:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6590:25:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "6567:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "6567:6:45"
+ },
+ "nativeSrc": "6567:49:45",
+ "nodeType": "YulFunctionCall",
+ "src": "6567:49:45"
+ },
+ "nativeSrc": "6567:49:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "6567:49:45"
+ },
+ {
+ "nativeSrc": "7204:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7204:30:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7222:2:45",
+ "nodeType": "YulLiteral",
+ "src": "7222:2:45",
+ "type": "",
+ "value": "32"
+ },
+ {
+ "name": "slength",
+ "nativeSrc": "7226:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "7226:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7218:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7218:3:45"
+ },
+ "nativeSrc": "7218:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7218:16:45"
+ },
+ "variables": [
+ {
+ "name": "submod",
+ "nativeSrc": "7208:6:45",
+ "nodeType": "YulTypedName",
+ "src": "7208:6:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7251:33:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7251:33:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "7265:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "7265:10:45"
+ },
+ {
+ "name": "submod",
+ "nativeSrc": "7277:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "7277:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7261:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7261:3:45"
+ },
+ "nativeSrc": "7261:23:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7261:23:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "7255:2:45",
+ "nodeType": "YulTypedName",
+ "src": "7255:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7301:35:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7301:35:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "7316:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "7316:10:45"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "7328:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "7328:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7312:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7312:3:45"
+ },
+ "nativeSrc": "7312:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7312:24:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "7305:3:45",
+ "nodeType": "YulTypedName",
+ "src": "7305:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7353:38:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7353:38:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7373:5:45",
+ "nodeType": "YulLiteral",
+ "src": "7373:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "name": "submod",
+ "nativeSrc": "7380:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "7380:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "7369:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7369:3:45"
+ },
+ "nativeSrc": "7369:18:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7369:18:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7389:1:45",
+ "nodeType": "YulLiteral",
+ "src": "7389:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7365:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7365:3:45"
+ },
+ "nativeSrc": "7365:26:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7365:26:45"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nativeSrc": "7357:4:45",
+ "nodeType": "YulTypedName",
+ "src": "7357:4:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "7437:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7437:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "7523:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "7523:5:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7558:66:45",
+ "nodeType": "YulLiteral",
+ "src": "7558:66:45",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "7490:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7490:3:45"
+ },
+ "nativeSrc": "7490:160:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7490:160:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "7686:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7686:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7680:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "7680:5:45"
+ },
+ "nativeSrc": "7680:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7680:9:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "7691:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "7691:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "7676:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7676:3:45"
+ },
+ "nativeSrc": "7676:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7676:20:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7461:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7461:3:45"
+ },
+ "nativeSrc": "7461:257:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7461:257:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "7409:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "7409:6:45"
+ },
+ "nativeSrc": "7409:327:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7409:327:45"
+ },
+ "nativeSrc": "7409:327:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "7409:327:45"
+ },
+ {
+ "body": {
+ "nativeSrc": "7964:61:45",
+ "nodeType": "YulBlock",
+ "src": "7964:61:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "7993:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7993:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "8003:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8003:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7997:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "7997:5:45"
+ },
+ "nativeSrc": "7997:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7997:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "7986:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "7986:6:45"
+ },
+ "nativeSrc": "7986:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7986:21:45"
+ },
+ "nativeSrc": "7986:21:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "7986:21:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "7858:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7858:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "7862:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7862:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "7855:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7855:2:45"
+ },
+ "nativeSrc": "7855:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7855:11:45"
+ },
+ "nativeSrc": "7754:271:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "7867:96:45",
+ "nodeType": "YulBlock",
+ "src": "7867:96:45",
+ "statements": [
+ {
+ "nativeSrc": "7889:16:45",
+ "nodeType": "YulAssignment",
+ "src": "7889:16:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "7899:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7899:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7903:1:45",
+ "nodeType": "YulLiteral",
+ "src": "7903:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7895:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7895:3:45"
+ },
+ "nativeSrc": "7895:10:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7895:10:45"
+ },
+ "variableNames": [
+ {
+ "name": "sc",
+ "nativeSrc": "7889:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7889:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7926:19:45",
+ "nodeType": "YulAssignment",
+ "src": "7926:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "7936:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7936:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7940:4:45",
+ "nodeType": "YulLiteral",
+ "src": "7940:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7932:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7932:3:45"
+ },
+ "nativeSrc": "7932:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7932:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "7926:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7926:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "7758:96:45",
+ "nodeType": "YulBlock",
+ "src": "7758:96:45",
+ "statements": [
+ {
+ "nativeSrc": "7780:19:45",
+ "nodeType": "YulAssignment",
+ "src": "7780:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "7790:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7790:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7794:4:45",
+ "nodeType": "YulLiteral",
+ "src": "7794:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7786:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7786:3:45"
+ },
+ "nativeSrc": "7786:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7786:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "7780:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7780:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7820:16:45",
+ "nodeType": "YulAssignment",
+ "src": "7820:16:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "7830:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7830:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7834:1:45",
+ "nodeType": "YulLiteral",
+ "src": "7834:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7826:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "7826:3:45"
+ },
+ "nativeSrc": "7826:10:45",
+ "nodeType": "YulFunctionCall",
+ "src": "7826:10:45"
+ },
+ "variableNames": [
+ {
+ "name": "sc",
+ "nativeSrc": "7820:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "7820:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "src": "7754:271:45"
+ },
+ {
+ "nativeSrc": "8043:32:45",
+ "nodeType": "YulAssignment",
+ "src": "8043:32:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8055:5:45",
+ "nodeType": "YulLiteral",
+ "src": "8055:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "8066:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8066:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "8070:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8070:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8062:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8062:3:45"
+ },
+ "nativeSrc": "8062:12:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8062:12:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "8051:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8051:3:45"
+ },
+ "nativeSrc": "8051:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8051:24:45"
+ },
+ "variableNames": [
+ {
+ "name": "mask",
+ "nativeSrc": "8043:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "8043:4:45"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "8100:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8100:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "8118:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8118:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8112:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "8112:5:45"
+ },
+ "nativeSrc": "8112:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8112:9:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "8123:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "8123:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "8108:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8108:3:45"
+ },
+ "nativeSrc": "8108:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8108:20:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "8130:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "8130:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "8104:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8104:3:45"
+ },
+ "nativeSrc": "8104:31:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8104:31:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "8093:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8093:6:45"
+ },
+ "nativeSrc": "8093:43:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8093:43:45"
+ },
+ "nativeSrc": "8093:43:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "8093:43:45"
+ }
+ ]
+ },
+ "nativeSrc": "6208:1942:45",
+ "nodeType": "YulCase",
+ "src": "6208:1942:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "6213:1:45",
+ "nodeType": "YulLiteral",
+ "src": "6213:1:45",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "8171:1264:45",
+ "nodeType": "YulBlock",
+ "src": "8171:1264:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8268:3:45",
+ "nodeType": "YulLiteral",
+ "src": "8268:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "8273:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "8273:14:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "8261:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8261:6:45"
+ },
+ "nativeSrc": "8261:27:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8261:27:45"
+ },
+ "nativeSrc": "8261:27:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "8261:27:45"
+ },
+ {
+ "nativeSrc": "8381:53:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8381:53:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8405:3:45",
+ "nodeType": "YulLiteral",
+ "src": "8405:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8410:4:45",
+ "nodeType": "YulLiteral",
+ "src": "8410:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "8395:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "8395:9:45"
+ },
+ "nativeSrc": "8395:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8395:20:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "8421:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "8421:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8430:2:45",
+ "nodeType": "YulLiteral",
+ "src": "8430:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "8417:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8417:3:45"
+ },
+ "nativeSrc": "8417:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8417:16:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8391:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8391:3:45"
+ },
+ "nativeSrc": "8391:43:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8391:43:45"
+ },
+ "variables": [
+ {
+ "name": "sc",
+ "nativeSrc": "8385:2:45",
+ "nodeType": "YulTypedName",
+ "src": "8385:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "8494:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "8494:14:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newlength",
+ "nativeSrc": "8518:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "8518:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8529:1:45",
+ "nodeType": "YulLiteral",
+ "src": "8529:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "8514:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8514:3:45"
+ },
+ "nativeSrc": "8514:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8514:17:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8533:1:45",
+ "nodeType": "YulLiteral",
+ "src": "8533:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8510:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8510:3:45"
+ },
+ "nativeSrc": "8510:25:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8510:25:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "8487:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8487:6:45"
+ },
+ "nativeSrc": "8487:49:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8487:49:45"
+ },
+ "nativeSrc": "8487:49:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "8487:49:45"
+ },
+ {
+ "nativeSrc": "8663:34:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8663:34:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "8685:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "8685:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8694:2:45",
+ "nodeType": "YulLiteral",
+ "src": "8694:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "8681:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8681:3:45"
+ },
+ "nativeSrc": "8681:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8681:16:45"
+ },
+ "variables": [
+ {
+ "name": "slengthmod",
+ "nativeSrc": "8667:10:45",
+ "nodeType": "YulTypedName",
+ "src": "8667:10:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8714:34:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8714:34:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mlength",
+ "nativeSrc": "8736:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "8736:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8745:2:45",
+ "nodeType": "YulLiteral",
+ "src": "8745:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mod",
+ "nativeSrc": "8732:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8732:3:45"
+ },
+ "nativeSrc": "8732:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8732:16:45"
+ },
+ "variables": [
+ {
+ "name": "mlengthmod",
+ "nativeSrc": "8718:10:45",
+ "nodeType": "YulTypedName",
+ "src": "8718:10:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8765:33:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8765:33:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8783:2:45",
+ "nodeType": "YulLiteral",
+ "src": "8783:2:45",
+ "type": "",
+ "value": "32"
+ },
+ {
+ "name": "slengthmod",
+ "nativeSrc": "8787:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "8787:10:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8779:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8779:3:45"
+ },
+ "nativeSrc": "8779:19:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8779:19:45"
+ },
+ "variables": [
+ {
+ "name": "submod",
+ "nativeSrc": "8769:6:45",
+ "nodeType": "YulTypedName",
+ "src": "8769:6:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8815:33:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8815:33:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "8829:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "8829:10:45"
+ },
+ {
+ "name": "submod",
+ "nativeSrc": "8841:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8841:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8825:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8825:3:45"
+ },
+ "nativeSrc": "8825:23:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8825:23:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "8819:2:45",
+ "nodeType": "YulTypedName",
+ "src": "8819:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8865:35:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8865:35:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "8880:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "8880:10:45"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "8892:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "8892:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8876:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8876:3:45"
+ },
+ "nativeSrc": "8876:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8876:24:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "8869:3:45",
+ "nodeType": "YulTypedName",
+ "src": "8869:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "8917:38:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8917:38:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8937:5:45",
+ "nodeType": "YulLiteral",
+ "src": "8937:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "name": "submod",
+ "nativeSrc": "8944:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8944:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "8933:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8933:3:45"
+ },
+ "nativeSrc": "8933:18:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8933:18:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8953:1:45",
+ "nodeType": "YulLiteral",
+ "src": "8953:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "8929:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8929:3:45"
+ },
+ "nativeSrc": "8929:26:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8929:26:45"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nativeSrc": "8921:4:45",
+ "nodeType": "YulTypedName",
+ "src": "8921:4:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "8980:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8980:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "8994:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "8994:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "8988:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "8988:5:45"
+ },
+ "nativeSrc": "8988:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8988:9:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9009:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9009:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "9003:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "9003:5:45"
+ },
+ "nativeSrc": "9003:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9003:9:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "9014:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "9014:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "8999:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8999:3:45"
+ },
+ "nativeSrc": "8999:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8999:20:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "8984:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "8984:3:45"
+ },
+ "nativeSrc": "8984:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8984:36:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "8973:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "8973:6:45"
+ },
+ "nativeSrc": "8973:48:45",
+ "nodeType": "YulFunctionCall",
+ "src": "8973:48:45"
+ },
+ "nativeSrc": "8973:48:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "8973:48:45"
+ },
+ {
+ "body": {
+ "nativeSrc": "9249:61:45",
+ "nodeType": "YulBlock",
+ "src": "9249:61:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "9278:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9278:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9288:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9288:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "9282:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "9282:5:45"
+ },
+ "nativeSrc": "9282:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9282:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "9271:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "9271:6:45"
+ },
+ "nativeSrc": "9271:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9271:21:45"
+ },
+ "nativeSrc": "9271:21:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "9271:21:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9143:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9143:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "9147:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9147:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "9140:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9140:2:45"
+ },
+ "nativeSrc": "9140:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9140:11:45"
+ },
+ "nativeSrc": "9039:271:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "9152:96:45",
+ "nodeType": "YulBlock",
+ "src": "9152:96:45",
+ "statements": [
+ {
+ "nativeSrc": "9174:16:45",
+ "nodeType": "YulAssignment",
+ "src": "9174:16:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "9184:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9184:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9188:1:45",
+ "nodeType": "YulLiteral",
+ "src": "9188:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9180:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9180:3:45"
+ },
+ "nativeSrc": "9180:10:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9180:10:45"
+ },
+ "variableNames": [
+ {
+ "name": "sc",
+ "nativeSrc": "9174:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9174:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "9211:19:45",
+ "nodeType": "YulAssignment",
+ "src": "9211:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9221:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9221:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9225:4:45",
+ "nodeType": "YulLiteral",
+ "src": "9225:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9217:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9217:3:45"
+ },
+ "nativeSrc": "9217:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9217:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "9211:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9211:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "9043:96:45",
+ "nodeType": "YulBlock",
+ "src": "9043:96:45",
+ "statements": [
+ {
+ "nativeSrc": "9065:16:45",
+ "nodeType": "YulAssignment",
+ "src": "9065:16:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "9075:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9075:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9079:1:45",
+ "nodeType": "YulLiteral",
+ "src": "9079:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9071:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9071:3:45"
+ },
+ "nativeSrc": "9071:10:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9071:10:45"
+ },
+ "variableNames": [
+ {
+ "name": "sc",
+ "nativeSrc": "9065:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9065:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "9102:19:45",
+ "nodeType": "YulAssignment",
+ "src": "9102:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9112:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9112:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "9116:4:45",
+ "nodeType": "YulLiteral",
+ "src": "9116:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "9108:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9108:3:45"
+ },
+ "nativeSrc": "9108:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9108:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "9102:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9102:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "src": "9039:271:45"
+ },
+ {
+ "nativeSrc": "9328:32:45",
+ "nodeType": "YulAssignment",
+ "src": "9328:32:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "9340:5:45",
+ "nodeType": "YulLiteral",
+ "src": "9340:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9351:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9351:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "9355:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9355:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "9347:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9347:3:45"
+ },
+ "nativeSrc": "9347:12:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9347:12:45"
+ }
+ ],
+ "functionName": {
+ "name": "exp",
+ "nativeSrc": "9336:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9336:3:45"
+ },
+ "nativeSrc": "9336:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9336:24:45"
+ },
+ "variableNames": [
+ {
+ "name": "mask",
+ "nativeSrc": "9328:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "9328:4:45"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "9385:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9385:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "9403:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "9403:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "9397:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "9397:5:45"
+ },
+ "nativeSrc": "9397:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9397:9:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "9408:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "9408:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "9393:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9393:3:45"
+ },
+ "nativeSrc": "9393:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9393:20:45"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "9415:4:45",
+ "nodeType": "YulIdentifier",
+ "src": "9415:4:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "9389:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "9389:3:45"
+ },
+ "nativeSrc": "9389:31:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9389:31:45"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "9378:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "9378:6:45"
+ },
+ "nativeSrc": "9378:43:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9378:43:45"
+ },
+ "nativeSrc": "9378:43:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "9378:43:45"
+ }
+ ]
+ },
+ "nativeSrc": "8163:1272:45",
+ "nodeType": "YulCase",
+ "src": "8163:1272:45",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "4658:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "4658:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4667:2:45",
+ "nodeType": "YulLiteral",
+ "src": "4667:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "4655:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "4655:2:45"
+ },
+ "nativeSrc": "4655:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4655:15:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newlength",
+ "nativeSrc": "4675:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "4675:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4686:2:45",
+ "nodeType": "YulLiteral",
+ "src": "4686:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "4672:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "4672:2:45"
+ },
+ "nativeSrc": "4672:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4672:17:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4651:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "4651:3:45"
+ },
+ "nativeSrc": "4651:39:45",
+ "nodeType": "YulFunctionCall",
+ "src": "4651:39:45"
+ },
+ "nativeSrc": "4644:4791:45",
+ "nodeType": "YulSwitch",
+ "src": "4644:4791:45"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "4315:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "5521:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7265:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "7316:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8829:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18257,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "8880:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "3697:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "4991:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "6429:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "6574:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "8273:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18255,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "8494:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ }
+ ],
+ "id": 18260,
+ "nodeType": "InlineAssembly",
+ "src": "3446:5999:45"
+ }
+ ]
+ },
+ "id": 18262,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "concatStorage",
+ "nameLocation": "3363:13:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18258,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18255,
+ "mutability": "mutable",
+ "name": "_preBytes",
+ "nameLocation": "3391:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18262,
+ "src": "3377:23:45",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18254,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3377:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18257,
+ "mutability": "mutable",
+ "name": "_postBytes",
+ "nameLocation": "3415:10:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18262,
+ "src": "3402:23:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18256,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3402:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3376:50:45"
+ },
+ "returnParameters": {
+ "id": 18259,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3436:0:45"
+ },
+ "scope": 18568,
+ "src": "3354:6097:45",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18298,
+ "nodeType": "Block",
+ "src": "9621:2640:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18276,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18274,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18268,
+ "src": "9639:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3331",
+ "id": 18275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9649:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_31_by_1",
+ "typeString": "int_const 31"
+ },
+ "value": "31"
+ },
+ "src": "9639:12:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 18277,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18268,
+ "src": "9655:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9639:23:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "736c6963655f6f766572666c6f77",
+ "id": 18279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9664:16:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e",
+ "typeString": "literal_string \"slice_overflow\""
+ },
+ "value": "slice_overflow"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e",
+ "typeString": "literal_string \"slice_overflow\""
+ }
+ ],
+ "id": 18273,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9631:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9631:50:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18281,
+ "nodeType": "ExpressionStatement",
+ "src": "9631:50:45"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18288,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18283,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18264,
+ "src": "9699:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18284,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "9706:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "9699:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18287,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18285,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18266,
+ "src": "9716:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 18286,
+ "name": "_length",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18268,
+ "src": "9725:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9716:16:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "9699:33:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "736c6963655f6f75744f66426f756e6473",
+ "id": 18289,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9734:19:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0",
+ "typeString": "literal_string \"slice_outOfBounds\""
+ },
+ "value": "slice_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0",
+ "typeString": "literal_string \"slice_outOfBounds\""
+ }
+ ],
+ "id": 18282,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "9691:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9691:63:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18291,
+ "nodeType": "ExpressionStatement",
+ "src": "9691:63:45"
+ },
+ {
+ "assignments": [
+ 18293
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18293,
+ "mutability": "mutable",
+ "name": "tempBytes",
+ "nameLocation": "9778:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18298,
+ "src": "9765:22:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18292,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9765:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18294,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "9765:22:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "9807:2421:45",
+ "nodeType": "YulBlock",
+ "src": "9807:2421:45",
+ "statements": [
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "9863:1960:45",
+ "nodeType": "YulBlock",
+ "src": "9863:1960:45",
+ "statements": [
+ {
+ "nativeSrc": "10019:24:45",
+ "nodeType": "YulAssignment",
+ "src": "10019:24:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "10038:4:45",
+ "nodeType": "YulLiteral",
+ "src": "10038:4:45",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "10032:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "10032:5:45"
+ },
+ "nativeSrc": "10032:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "10032:11:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "10019:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "10019:9:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "10667:33:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "10667:33:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_length",
+ "nativeSrc": "10688:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "10688:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "10697:2:45",
+ "nodeType": "YulLiteral",
+ "src": "10697:2:45",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "10684:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "10684:3:45"
+ },
+ "nativeSrc": "10684:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "10684:16:45"
+ },
+ "variables": [
+ {
+ "name": "lengthmod",
+ "nativeSrc": "10671:9:45",
+ "nodeType": "YulTypedName",
+ "src": "10671:9:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "11021:70:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "11021:70:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "11039:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11039:9:45"
+ },
+ {
+ "name": "lengthmod",
+ "nativeSrc": "11050:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11050:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11035:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11035:3:45"
+ },
+ "nativeSrc": "11035:25:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11035:25:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "11066:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11066:4:45",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lengthmod",
+ "nativeSrc": "11079:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11079:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "11072:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11072:6:45"
+ },
+ "nativeSrc": "11072:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11072:17:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "11062:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11062:3:45"
+ },
+ "nativeSrc": "11062:28:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11062:28:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11031:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11031:3:45"
+ },
+ "nativeSrc": "11031:60:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11031:60:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "11025:2:45",
+ "nodeType": "YulTypedName",
+ "src": "11025:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "11108:27:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "11108:27:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "11123:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11123:2:45"
+ },
+ {
+ "name": "_length",
+ "nativeSrc": "11127:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "11127:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11119:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11119:3:45"
+ },
+ "nativeSrc": "11119:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11119:16:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "11112:3:45",
+ "nodeType": "YulTypedName",
+ "src": "11112:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "11517:61:45",
+ "nodeType": "YulBlock",
+ "src": "11517:61:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "11546:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11546:2:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "11556:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11556:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "11550:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "11550:5:45"
+ },
+ "nativeSrc": "11550:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11550:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "11539:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11539:6:45"
+ },
+ "nativeSrc": "11539:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11539:21:45"
+ },
+ "nativeSrc": "11539:21:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "11539:21:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "11408:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11408:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "11412:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11412:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "11405:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11405:2:45"
+ },
+ "nativeSrc": "11405:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11405:11:45"
+ },
+ "nativeSrc": "11153:425:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "11417:99:45",
+ "nodeType": "YulBlock",
+ "src": "11417:99:45",
+ "statements": [
+ {
+ "nativeSrc": "11439:19:45",
+ "nodeType": "YulAssignment",
+ "src": "11439:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "11449:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11449:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "11453:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11453:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11445:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11445:3:45"
+ },
+ "nativeSrc": "11445:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11445:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "11439:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11439:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "11479:19:45",
+ "nodeType": "YulAssignment",
+ "src": "11479:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "11489:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11489:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "11493:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11493:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11485:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11485:3:45"
+ },
+ "nativeSrc": "11485:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11485:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "cc",
+ "nativeSrc": "11479:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11479:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "11157:247:45",
+ "nodeType": "YulBlock",
+ "src": "11157:247:45",
+ "statements": [
+ {
+ "nativeSrc": "11306:80:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "11306:80:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "11328:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11328:6:45"
+ },
+ {
+ "name": "lengthmod",
+ "nativeSrc": "11336:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11336:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11324:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11324:3:45"
+ },
+ "nativeSrc": "11324:22:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11324:22:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "11352:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11352:4:45",
+ "type": "",
+ "value": "0x20"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lengthmod",
+ "nativeSrc": "11365:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11365:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "11358:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11358:6:45"
+ },
+ "nativeSrc": "11358:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11358:17:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "11348:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11348:3:45"
+ },
+ "nativeSrc": "11348:28:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11348:28:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11320:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11320:3:45"
+ },
+ "nativeSrc": "11320:57:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11320:57:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "11379:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11379:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11316:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11316:3:45"
+ },
+ "nativeSrc": "11316:70:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11316:70:45"
+ },
+ "variables": [
+ {
+ "name": "cc",
+ "nativeSrc": "11310:2:45",
+ "nodeType": "YulTypedName",
+ "src": "11310:2:45",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "11153:425:45"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "11603:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11603:9:45"
+ },
+ {
+ "name": "_length",
+ "nativeSrc": "11614:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "11614:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "11596:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11596:6:45"
+ },
+ "nativeSrc": "11596:26:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11596:26:45"
+ },
+ "nativeSrc": "11596:26:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "11596:26:45"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "11777:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11777:4:45",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "11791:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "11791:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "11795:2:45",
+ "nodeType": "YulLiteral",
+ "src": "11795:2:45",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "11787:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11787:3:45"
+ },
+ "nativeSrc": "11787:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11787:11:45"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "11804:2:45",
+ "nodeType": "YulLiteral",
+ "src": "11804:2:45",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "11800:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11800:3:45"
+ },
+ "nativeSrc": "11800:7:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11800:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "11783:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "11783:3:45"
+ },
+ "nativeSrc": "11783:25:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11783:25:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "11770:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "11770:6:45"
+ },
+ "nativeSrc": "11770:39:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11770:39:45"
+ },
+ "nativeSrc": "11770:39:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "11770:39:45"
+ }
+ ]
+ },
+ "nativeSrc": "9856:1967:45",
+ "nodeType": "YulCase",
+ "src": "9856:1967:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "9861:1:45",
+ "nodeType": "YulLiteral",
+ "src": "9861:1:45",
+ "type": "",
+ "value": "0"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "11927:291:45",
+ "nodeType": "YulBlock",
+ "src": "11927:291:45",
+ "statements": [
+ {
+ "nativeSrc": "11945:24:45",
+ "nodeType": "YulAssignment",
+ "src": "11945:24:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "11964:4:45",
+ "nodeType": "YulLiteral",
+ "src": "11964:4:45",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "11958:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "11958:5:45"
+ },
+ "nativeSrc": "11958:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "11958:11:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "11945:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "11945:9:45"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "12139:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "12139:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "12150:1:45",
+ "nodeType": "YulLiteral",
+ "src": "12150:1:45",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "12132:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12132:6:45"
+ },
+ "nativeSrc": "12132:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12132:20:45"
+ },
+ "nativeSrc": "12132:20:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "12132:20:45"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "12177:4:45",
+ "nodeType": "YulLiteral",
+ "src": "12177:4:45",
+ "type": "",
+ "value": "0x40"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tempBytes",
+ "nativeSrc": "12187:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "12187:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "12198:4:45",
+ "nodeType": "YulLiteral",
+ "src": "12198:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "12183:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12183:3:45"
+ },
+ "nativeSrc": "12183:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12183:20:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "12170:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12170:6:45"
+ },
+ "nativeSrc": "12170:34:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12170:34:45"
+ },
+ "nativeSrc": "12170:34:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "12170:34:45"
+ }
+ ]
+ },
+ "nativeSrc": "11919:299:45",
+ "nodeType": "YulCase",
+ "src": "11919:299:45",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "_length",
+ "nativeSrc": "9835:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "9835:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "9828:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "9828:6:45"
+ },
+ "nativeSrc": "9828:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "9828:15:45"
+ },
+ "nativeSrc": "9821:2397:45",
+ "nodeType": "YulSwitch",
+ "src": "9821:2397:45"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18264,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11328:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18268,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "10688:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18268,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11127:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18268,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11614:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18268,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "9835:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18266,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11379:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "10019:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11039:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11603:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "11945:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12139:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18293,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12187:9:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18295,
+ "nodeType": "InlineAssembly",
+ "src": "9798:2430:45"
+ },
+ {
+ "expression": {
+ "id": 18296,
+ "name": "tempBytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18293,
+ "src": "12245:9:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "functionReturnParameters": 18272,
+ "id": 18297,
+ "nodeType": "Return",
+ "src": "12238:16:45"
+ }
+ ]
+ },
+ "id": 18299,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "slice",
+ "nameLocation": "9466:5:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18269,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18264,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "9494:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18299,
+ "src": "9481:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18263,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9481:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18266,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "9518:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18299,
+ "src": "9510:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18265,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9510:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18268,
+ "mutability": "mutable",
+ "name": "_length",
+ "nameLocation": "9542:7:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18299,
+ "src": "9534:15:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18267,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9534:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9471:84:45"
+ },
+ "returnParameters": {
+ "id": 18272,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18271,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18299,
+ "src": "9603:12:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18270,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "9603:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9602:14:45"
+ },
+ "scope": 18568,
+ "src": "9457:2804:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18324,
+ "nodeType": "Block",
+ "src": "12355:266:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18314,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18309,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18301,
+ "src": "12373:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18310,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12380:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12373:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18313,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18311,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18303,
+ "src": "12390:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3230",
+ "id": 18312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12399:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_20_by_1",
+ "typeString": "int_const 20"
+ },
+ "value": "20"
+ },
+ "src": "12390:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12373:28:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f416464726573735f6f75744f66426f756e6473",
+ "id": 18315,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12403:23:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d",
+ "typeString": "literal_string \"toAddress_outOfBounds\""
+ },
+ "value": "toAddress_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d",
+ "typeString": "literal_string \"toAddress_outOfBounds\""
+ }
+ ],
+ "id": 18308,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12365:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18316,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12365:62:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18317,
+ "nodeType": "ExpressionStatement",
+ "src": "12365:62:45"
+ },
+ {
+ "assignments": [
+ 18319
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18319,
+ "mutability": "mutable",
+ "name": "tempAddress",
+ "nameLocation": "12445:11:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18324,
+ "src": "12437:19:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 18318,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "12437:7:45",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18320,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12437:19:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "12476:110:45",
+ "nodeType": "YulBlock",
+ "src": "12476:110:45",
+ "statements": [
+ {
+ "nativeSrc": "12490:86:45",
+ "nodeType": "YulAssignment",
+ "src": "12490:86:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "12523:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12523:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "12531:4:45",
+ "nodeType": "YulLiteral",
+ "src": "12531:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "12519:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12519:3:45"
+ },
+ "nativeSrc": "12519:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12519:17:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "12538:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12538:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "12515:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12515:3:45"
+ },
+ "nativeSrc": "12515:30:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12515:30:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "12509:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "12509:5:45"
+ },
+ "nativeSrc": "12509:37:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12509:37:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "12548:27:45",
+ "nodeType": "YulLiteral",
+ "src": "12548:27:45",
+ "type": "",
+ "value": "0x1000000000000000000000000"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "12505:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12505:3:45"
+ },
+ "nativeSrc": "12505:71:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12505:71:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempAddress",
+ "nativeSrc": "12490:11:45",
+ "nodeType": "YulIdentifier",
+ "src": "12490:11:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18301,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12523:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18303,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12538:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18319,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12490:11:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18321,
+ "nodeType": "InlineAssembly",
+ "src": "12467:119:45"
+ },
+ {
+ "expression": {
+ "id": 18322,
+ "name": "tempAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18319,
+ "src": "12603:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 18307,
+ "id": 18323,
+ "nodeType": "Return",
+ "src": "12596:18:45"
+ }
+ ]
+ },
+ "id": 18325,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toAddress",
+ "nameLocation": "12276:9:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18304,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18301,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "12299:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18325,
+ "src": "12286:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18300,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12286:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18303,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "12315:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18325,
+ "src": "12307:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18302,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12307:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12285:37:45"
+ },
+ "returnParameters": {
+ "id": 18307,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18306,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18325,
+ "src": "12346:7:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 18305,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "12346:7:45",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12345:9:45"
+ },
+ "scope": 18568,
+ "src": "12267:354:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18350,
+ "nodeType": "Block",
+ "src": "12711:218:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18340,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18335,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18327,
+ "src": "12729:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18336,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "12736:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "12729:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18337,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18329,
+ "src": "12746:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 18338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12755:1:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "12746:10:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "12729:27:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e74385f6f75744f66426f756e6473",
+ "id": 18341,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "12759:21:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1",
+ "typeString": "literal_string \"toUint8_outOfBounds\""
+ },
+ "value": "toUint8_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1",
+ "typeString": "literal_string \"toUint8_outOfBounds\""
+ }
+ ],
+ "id": 18334,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "12721:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18342,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "12721:60:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18343,
+ "nodeType": "ExpressionStatement",
+ "src": "12721:60:45"
+ },
+ {
+ "assignments": [
+ 18345
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18345,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "12797:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18350,
+ "src": "12791:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 18344,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "12791:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18346,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "12791:14:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "12825:72:45",
+ "nodeType": "YulBlock",
+ "src": "12825:72:45",
+ "statements": [
+ {
+ "nativeSrc": "12839:48:45",
+ "nodeType": "YulAssignment",
+ "src": "12839:48:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "12865:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12865:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "12873:3:45",
+ "nodeType": "YulLiteral",
+ "src": "12873:3:45",
+ "type": "",
+ "value": "0x1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "12861:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12861:3:45"
+ },
+ "nativeSrc": "12861:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12861:16:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "12879:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "12879:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "12857:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "12857:3:45"
+ },
+ "nativeSrc": "12857:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12857:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "12851:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "12851:5:45"
+ },
+ "nativeSrc": "12851:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "12851:36:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "12839:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "12839:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18327,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12865:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18329,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12879:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18345,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "12839:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18347,
+ "nodeType": "InlineAssembly",
+ "src": "12816:81:45"
+ },
+ {
+ "expression": {
+ "id": 18348,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18345,
+ "src": "12914:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "functionReturnParameters": 18333,
+ "id": 18349,
+ "nodeType": "Return",
+ "src": "12907:15:45"
+ }
+ ]
+ },
+ "id": 18351,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint8",
+ "nameLocation": "12636:7:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18330,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18327,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "12657:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18351,
+ "src": "12644:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18326,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12644:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18329,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "12673:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18351,
+ "src": "12665:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18328,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12665:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12643:37:45"
+ },
+ "returnParameters": {
+ "id": 18333,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18332,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18351,
+ "src": "12704:5:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 18331,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "12704:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12703:7:45"
+ },
+ "scope": 18568,
+ "src": "12627:302:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18376,
+ "nodeType": "Block",
+ "src": "13021:219:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18366,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18361,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18353,
+ "src": "13039:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13046:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13039:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18365,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18363,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18355,
+ "src": "13056:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 18364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13065:1:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "13056:10:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13039:27:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e7431365f6f75744f66426f756e6473",
+ "id": 18367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13068:22:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab",
+ "typeString": "literal_string \"toUint16_outOfBounds\""
+ },
+ "value": "toUint16_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab",
+ "typeString": "literal_string \"toUint16_outOfBounds\""
+ }
+ ],
+ "id": 18360,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13031:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13031:60:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18369,
+ "nodeType": "ExpressionStatement",
+ "src": "13031:60:45"
+ },
+ {
+ "assignments": [
+ 18371
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18371,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "13108:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18376,
+ "src": "13101:15:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18370,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "13101:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18372,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13101:15:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "13136:72:45",
+ "nodeType": "YulBlock",
+ "src": "13136:72:45",
+ "statements": [
+ {
+ "nativeSrc": "13150:48:45",
+ "nodeType": "YulAssignment",
+ "src": "13150:48:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "13176:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13176:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "13184:3:45",
+ "nodeType": "YulLiteral",
+ "src": "13184:3:45",
+ "type": "",
+ "value": "0x2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13172:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13172:3:45"
+ },
+ "nativeSrc": "13172:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13172:16:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "13190:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13190:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13168:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13168:3:45"
+ },
+ "nativeSrc": "13168:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13168:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "13162:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "13162:5:45"
+ },
+ "nativeSrc": "13162:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13162:36:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "13150:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "13150:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18353,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13176:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18355,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13190:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18371,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13150:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18373,
+ "nodeType": "InlineAssembly",
+ "src": "13127:81:45"
+ },
+ {
+ "expression": {
+ "id": 18374,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18371,
+ "src": "13225:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "functionReturnParameters": 18359,
+ "id": 18375,
+ "nodeType": "Return",
+ "src": "13218:15:45"
+ }
+ ]
+ },
+ "id": 18377,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint16",
+ "nameLocation": "12944:8:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18356,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18353,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "12966:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18377,
+ "src": "12953:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18352,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "12953:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18355,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "12982:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18377,
+ "src": "12974:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18354,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "12974:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12952:37:45"
+ },
+ "returnParameters": {
+ "id": 18359,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18358,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18377,
+ "src": "13013:6:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ },
+ "typeName": {
+ "id": 18357,
+ "name": "uint16",
+ "nodeType": "ElementaryTypeName",
+ "src": "13013:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint16",
+ "typeString": "uint16"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13012:8:45"
+ },
+ "scope": 18568,
+ "src": "12935:305:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18402,
+ "nodeType": "Block",
+ "src": "13332:219:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18392,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18387,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18379,
+ "src": "13350:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13357:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13350:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18391,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18389,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18381,
+ "src": "13367:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "34",
+ "id": 18390,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13376:1:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_4_by_1",
+ "typeString": "int_const 4"
+ },
+ "value": "4"
+ },
+ "src": "13367:10:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13350:27:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e7433325f6f75744f66426f756e6473",
+ "id": 18393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13379:22:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf",
+ "typeString": "literal_string \"toUint32_outOfBounds\""
+ },
+ "value": "toUint32_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf",
+ "typeString": "literal_string \"toUint32_outOfBounds\""
+ }
+ ],
+ "id": 18386,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13342:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13342:60:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18395,
+ "nodeType": "ExpressionStatement",
+ "src": "13342:60:45"
+ },
+ {
+ "assignments": [
+ 18397
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18397,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "13419:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18402,
+ "src": "13412:15:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 18396,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "13412:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18398,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13412:15:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "13447:72:45",
+ "nodeType": "YulBlock",
+ "src": "13447:72:45",
+ "statements": [
+ {
+ "nativeSrc": "13461:48:45",
+ "nodeType": "YulAssignment",
+ "src": "13461:48:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "13487:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13487:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "13495:3:45",
+ "nodeType": "YulLiteral",
+ "src": "13495:3:45",
+ "type": "",
+ "value": "0x4"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13483:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13483:3:45"
+ },
+ "nativeSrc": "13483:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13483:16:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "13501:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13501:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13479:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13479:3:45"
+ },
+ "nativeSrc": "13479:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13479:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "13473:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "13473:5:45"
+ },
+ "nativeSrc": "13473:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13473:36:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "13461:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "13461:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18379,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13487:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18381,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13501:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18397,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13461:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18399,
+ "nodeType": "InlineAssembly",
+ "src": "13438:81:45"
+ },
+ {
+ "expression": {
+ "id": 18400,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18397,
+ "src": "13536:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "functionReturnParameters": 18385,
+ "id": 18401,
+ "nodeType": "Return",
+ "src": "13529:15:45"
+ }
+ ]
+ },
+ "id": 18403,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint32",
+ "nameLocation": "13255:8:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18382,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18379,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "13277:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18403,
+ "src": "13264:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18378,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "13264:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18381,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "13293:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18403,
+ "src": "13285:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18380,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13285:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13263:37:45"
+ },
+ "returnParameters": {
+ "id": 18385,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18384,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18403,
+ "src": "13324:6:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 18383,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "13324:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13323:8:45"
+ },
+ "scope": 18568,
+ "src": "13246:305:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18428,
+ "nodeType": "Block",
+ "src": "13643:219:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18413,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18405,
+ "src": "13661:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18414,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13668:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13661:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18417,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18415,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18407,
+ "src": "13678:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "38",
+ "id": 18416,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13687:1:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_8_by_1",
+ "typeString": "int_const 8"
+ },
+ "value": "8"
+ },
+ "src": "13678:10:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13661:27:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e7436345f6f75744f66426f756e6473",
+ "id": 18419,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13690:22:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145",
+ "typeString": "literal_string \"toUint64_outOfBounds\""
+ },
+ "value": "toUint64_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145",
+ "typeString": "literal_string \"toUint64_outOfBounds\""
+ }
+ ],
+ "id": 18412,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13653:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18420,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13653:60:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18421,
+ "nodeType": "ExpressionStatement",
+ "src": "13653:60:45"
+ },
+ {
+ "assignments": [
+ 18423
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18423,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "13730:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18428,
+ "src": "13723:15:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 18422,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "13723:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18424,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "13723:15:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "13758:72:45",
+ "nodeType": "YulBlock",
+ "src": "13758:72:45",
+ "statements": [
+ {
+ "nativeSrc": "13772:48:45",
+ "nodeType": "YulAssignment",
+ "src": "13772:48:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "13798:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13798:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "13806:3:45",
+ "nodeType": "YulLiteral",
+ "src": "13806:3:45",
+ "type": "",
+ "value": "0x8"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13794:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13794:3:45"
+ },
+ "nativeSrc": "13794:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13794:16:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "13812:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "13812:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "13790:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "13790:3:45"
+ },
+ "nativeSrc": "13790:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13790:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "13784:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "13784:5:45"
+ },
+ "nativeSrc": "13784:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "13784:36:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "13772:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "13772:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18405,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13798:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18407,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13812:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18423,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "13772:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18425,
+ "nodeType": "InlineAssembly",
+ "src": "13749:81:45"
+ },
+ {
+ "expression": {
+ "id": 18426,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18423,
+ "src": "13847:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "functionReturnParameters": 18411,
+ "id": 18427,
+ "nodeType": "Return",
+ "src": "13840:15:45"
+ }
+ ]
+ },
+ "id": 18429,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint64",
+ "nameLocation": "13566:8:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18408,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18405,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "13588:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18429,
+ "src": "13575:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18404,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "13575:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18407,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "13604:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18429,
+ "src": "13596:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18406,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13596:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13574:37:45"
+ },
+ "returnParameters": {
+ "id": 18411,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18410,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18429,
+ "src": "13635:6:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ },
+ "typeName": {
+ "id": 18409,
+ "name": "uint64",
+ "nodeType": "ElementaryTypeName",
+ "src": "13635:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint64",
+ "typeString": "uint64"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13634:8:45"
+ },
+ "scope": 18568,
+ "src": "13557:305:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18454,
+ "nodeType": "Block",
+ "src": "13954:220:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18439,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18431,
+ "src": "13972:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18440,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "13979:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "13972:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18441,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18433,
+ "src": "13989:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3132",
+ "id": 18442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "13998:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_12_by_1",
+ "typeString": "int_const 12"
+ },
+ "value": "12"
+ },
+ "src": "13989:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "13972:28:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e7439365f6f75744f66426f756e6473",
+ "id": 18445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14002:22:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7",
+ "typeString": "literal_string \"toUint96_outOfBounds\""
+ },
+ "value": "toUint96_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7",
+ "typeString": "literal_string \"toUint96_outOfBounds\""
+ }
+ ],
+ "id": 18438,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "13964:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "13964:61:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18447,
+ "nodeType": "ExpressionStatement",
+ "src": "13964:61:45"
+ },
+ {
+ "assignments": [
+ 18449
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18449,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "14042:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18454,
+ "src": "14035:15:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ },
+ "typeName": {
+ "id": 18448,
+ "name": "uint96",
+ "nodeType": "ElementaryTypeName",
+ "src": "14035:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18450,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14035:15:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "14070:72:45",
+ "nodeType": "YulBlock",
+ "src": "14070:72:45",
+ "statements": [
+ {
+ "nativeSrc": "14084:48:45",
+ "nodeType": "YulAssignment",
+ "src": "14084:48:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "14110:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14110:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "14118:3:45",
+ "nodeType": "YulLiteral",
+ "src": "14118:3:45",
+ "type": "",
+ "value": "0xc"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14106:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14106:3:45"
+ },
+ "nativeSrc": "14106:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14106:16:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "14124:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14124:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14102:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14102:3:45"
+ },
+ "nativeSrc": "14102:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14102:29:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "14096:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "14096:5:45"
+ },
+ "nativeSrc": "14096:36:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14096:36:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "14084:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "14084:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18431,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14110:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18433,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14124:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18449,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14084:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18451,
+ "nodeType": "InlineAssembly",
+ "src": "14061:81:45"
+ },
+ {
+ "expression": {
+ "id": 18452,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18449,
+ "src": "14159:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "functionReturnParameters": 18437,
+ "id": 18453,
+ "nodeType": "Return",
+ "src": "14152:15:45"
+ }
+ ]
+ },
+ "id": 18455,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint96",
+ "nameLocation": "13877:8:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18434,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18431,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "13899:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18455,
+ "src": "13886:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18430,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "13886:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18433,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "13915:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18455,
+ "src": "13907:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18432,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "13907:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13885:37:45"
+ },
+ "returnParameters": {
+ "id": 18437,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18436,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18455,
+ "src": "13946:6:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ },
+ "typeName": {
+ "id": 18435,
+ "name": "uint96",
+ "nodeType": "ElementaryTypeName",
+ "src": "13946:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint96",
+ "typeString": "uint96"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13945:8:45"
+ },
+ "scope": 18568,
+ "src": "13868:306:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18480,
+ "nodeType": "Block",
+ "src": "14268:223:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18465,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18457,
+ "src": "14286:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14293:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "14286:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18469,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18467,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18459,
+ "src": "14303:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3136",
+ "id": 18468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14312:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_16_by_1",
+ "typeString": "int_const 16"
+ },
+ "value": "16"
+ },
+ "src": "14303:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14286:28:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e743132385f6f75744f66426f756e6473",
+ "id": 18471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14316:23:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc",
+ "typeString": "literal_string \"toUint128_outOfBounds\""
+ },
+ "value": "toUint128_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc",
+ "typeString": "literal_string \"toUint128_outOfBounds\""
+ }
+ ],
+ "id": 18464,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14278:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18472,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14278:62:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18473,
+ "nodeType": "ExpressionStatement",
+ "src": "14278:62:45"
+ },
+ {
+ "assignments": [
+ 18475
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18475,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "14358:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18480,
+ "src": "14350:16:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ },
+ "typeName": {
+ "id": 18474,
+ "name": "uint128",
+ "nodeType": "ElementaryTypeName",
+ "src": "14350:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18476,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14350:16:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "14386:73:45",
+ "nodeType": "YulBlock",
+ "src": "14386:73:45",
+ "statements": [
+ {
+ "nativeSrc": "14400:49:45",
+ "nodeType": "YulAssignment",
+ "src": "14400:49:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "14426:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14426:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "14434:4:45",
+ "nodeType": "YulLiteral",
+ "src": "14434:4:45",
+ "type": "",
+ "value": "0x10"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14422:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14422:3:45"
+ },
+ "nativeSrc": "14422:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14422:17:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "14441:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14441:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14418:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14418:3:45"
+ },
+ "nativeSrc": "14418:30:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14418:30:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "14412:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "14412:5:45"
+ },
+ "nativeSrc": "14412:37:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14412:37:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "14400:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "14400:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18457,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14426:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18459,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14441:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18475,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14400:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18477,
+ "nodeType": "InlineAssembly",
+ "src": "14377:82:45"
+ },
+ {
+ "expression": {
+ "id": 18478,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18475,
+ "src": "14476:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "functionReturnParameters": 18463,
+ "id": 18479,
+ "nodeType": "Return",
+ "src": "14469:15:45"
+ }
+ ]
+ },
+ "id": 18481,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint128",
+ "nameLocation": "14189:9:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18460,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18457,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "14212:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18481,
+ "src": "14199:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18456,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14199:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18459,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "14228:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18481,
+ "src": "14220:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18458,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14220:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14198:37:45"
+ },
+ "returnParameters": {
+ "id": 18463,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18462,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18481,
+ "src": "14259:7:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ },
+ "typeName": {
+ "id": 18461,
+ "name": "uint128",
+ "nodeType": "ElementaryTypeName",
+ "src": "14259:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint128",
+ "typeString": "uint128"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14258:9:45"
+ },
+ "scope": 18568,
+ "src": "14180:311:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18506,
+ "nodeType": "Block",
+ "src": "14585:223:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18496,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18491,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18483,
+ "src": "14603:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18492,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14610:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "14603:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18495,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18493,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18485,
+ "src": "14620:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 18494,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14629:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "14620:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14603:28:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f55696e743235365f6f75744f66426f756e6473",
+ "id": 18497,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14633:23:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b",
+ "typeString": "literal_string \"toUint256_outOfBounds\""
+ },
+ "value": "toUint256_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b",
+ "typeString": "literal_string \"toUint256_outOfBounds\""
+ }
+ ],
+ "id": 18490,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14595:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18498,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14595:62:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18499,
+ "nodeType": "ExpressionStatement",
+ "src": "14595:62:45"
+ },
+ {
+ "assignments": [
+ 18501
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18501,
+ "mutability": "mutable",
+ "name": "tempUint",
+ "nameLocation": "14675:8:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18506,
+ "src": "14667:16:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18500,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14667:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18502,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14667:16:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "14703:73:45",
+ "nodeType": "YulBlock",
+ "src": "14703:73:45",
+ "statements": [
+ {
+ "nativeSrc": "14717:49:45",
+ "nodeType": "YulAssignment",
+ "src": "14717:49:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "14743:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14743:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "14751:4:45",
+ "nodeType": "YulLiteral",
+ "src": "14751:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14739:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14739:3:45"
+ },
+ "nativeSrc": "14739:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14739:17:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "14758:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "14758:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "14735:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "14735:3:45"
+ },
+ "nativeSrc": "14735:30:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14735:30:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "14729:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "14729:5:45"
+ },
+ "nativeSrc": "14729:37:45",
+ "nodeType": "YulFunctionCall",
+ "src": "14729:37:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempUint",
+ "nativeSrc": "14717:8:45",
+ "nodeType": "YulIdentifier",
+ "src": "14717:8:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18483,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14743:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18485,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14758:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18501,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "14717:8:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18503,
+ "nodeType": "InlineAssembly",
+ "src": "14694:82:45"
+ },
+ {
+ "expression": {
+ "id": 18504,
+ "name": "tempUint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18501,
+ "src": "14793:8:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 18489,
+ "id": 18505,
+ "nodeType": "Return",
+ "src": "14786:15:45"
+ }
+ ]
+ },
+ "id": 18507,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toUint256",
+ "nameLocation": "14506:9:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18486,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18483,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "14529:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18507,
+ "src": "14516:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18482,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14516:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18485,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "14545:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18507,
+ "src": "14537:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18484,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14537:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14515:37:45"
+ },
+ "returnParameters": {
+ "id": 18489,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18488,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18507,
+ "src": "14576:7:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18487,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14576:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14575:9:45"
+ },
+ "scope": 18568,
+ "src": "14497:311:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18532,
+ "nodeType": "Block",
+ "src": "14902:232:45",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18522,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 18517,
+ "name": "_bytes",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18509,
+ "src": "14920:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "id": 18518,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "14927:6:45",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "14920:13:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 18521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 18519,
+ "name": "_start",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18511,
+ "src": "14937:6:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "3332",
+ "id": 18520,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14946:2:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_32_by_1",
+ "typeString": "int_const 32"
+ },
+ "value": "32"
+ },
+ "src": "14937:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "14920:28:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "746f427974657333325f6f75744f66426f756e6473",
+ "id": 18523,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "14950:23:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2",
+ "typeString": "literal_string \"toBytes32_outOfBounds\""
+ },
+ "value": "toBytes32_outOfBounds"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2",
+ "typeString": "literal_string \"toBytes32_outOfBounds\""
+ }
+ ],
+ "id": 18516,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "14912:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 18524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "14912:62:45",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 18525,
+ "nodeType": "ExpressionStatement",
+ "src": "14912:62:45"
+ },
+ {
+ "assignments": [
+ 18527
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18527,
+ "mutability": "mutable",
+ "name": "tempBytes32",
+ "nameLocation": "14992:11:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18532,
+ "src": "14984:19:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 18526,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "14984:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18528,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "14984:19:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "15023:76:45",
+ "nodeType": "YulBlock",
+ "src": "15023:76:45",
+ "statements": [
+ {
+ "nativeSrc": "15037:52:45",
+ "nodeType": "YulAssignment",
+ "src": "15037:52:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_bytes",
+ "nativeSrc": "15066:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "15066:6:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "15074:4:45",
+ "nodeType": "YulLiteral",
+ "src": "15074:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15062:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15062:3:45"
+ },
+ "nativeSrc": "15062:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15062:17:45"
+ },
+ {
+ "name": "_start",
+ "nativeSrc": "15081:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "15081:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15058:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15058:3:45"
+ },
+ "nativeSrc": "15058:30:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15058:30:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "15052:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "15052:5:45"
+ },
+ "nativeSrc": "15052:37:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15052:37:45"
+ },
+ "variableNames": [
+ {
+ "name": "tempBytes32",
+ "nativeSrc": "15037:11:45",
+ "nodeType": "YulIdentifier",
+ "src": "15037:11:45"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18509,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15066:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18511,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15081:6:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18527,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15037:11:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18529,
+ "nodeType": "InlineAssembly",
+ "src": "15014:85:45"
+ },
+ {
+ "expression": {
+ "id": 18530,
+ "name": "tempBytes32",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18527,
+ "src": "15116:11:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "functionReturnParameters": 18515,
+ "id": 18531,
+ "nodeType": "Return",
+ "src": "15109:18:45"
+ }
+ ]
+ },
+ "id": 18533,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toBytes32",
+ "nameLocation": "14823:9:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18512,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18509,
+ "mutability": "mutable",
+ "name": "_bytes",
+ "nameLocation": "14846:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18533,
+ "src": "14833:19:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18508,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14833:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18511,
+ "mutability": "mutable",
+ "name": "_start",
+ "nameLocation": "14862:6:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18533,
+ "src": "14854:14:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 18510,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14854:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14832:37:45"
+ },
+ "returnParameters": {
+ "id": 18515,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18514,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18533,
+ "src": "14893:7:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 18513,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "14893:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "14892:9:45"
+ },
+ "scope": 18568,
+ "src": "14814:320:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18549,
+ "nodeType": "Block",
+ "src": "15233:1323:45",
+ "statements": [
+ {
+ "assignments": [
+ 18543
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18543,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "15248:7:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18549,
+ "src": "15243:12:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18542,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "15243:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18545,
+ "initialValue": {
+ "hexValue": "74727565",
+ "id": 18544,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "15258:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "15243:19:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "15282:1243:45",
+ "nodeType": "YulBlock",
+ "src": "15282:1243:45",
+ "statements": [
+ {
+ "nativeSrc": "15296:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "15296:30:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes",
+ "nativeSrc": "15316:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "15316:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "15310:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "15310:5:45"
+ },
+ "nativeSrc": "15310:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15310:16:45"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "15300:6:45",
+ "nodeType": "YulTypedName",
+ "src": "15300:6:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "15459:961:45",
+ "nodeType": "YulBlock",
+ "src": "15459:961:45",
+ "statements": [
+ {
+ "nativeSrc": "15688:11:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "15688:11:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "15698:1:45",
+ "nodeType": "YulLiteral",
+ "src": "15698:1:45",
+ "type": "",
+ "value": "1"
+ },
+ "variables": [
+ {
+ "name": "cb",
+ "nativeSrc": "15692:2:45",
+ "nodeType": "YulTypedName",
+ "src": "15692:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "15717:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "15717:30:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes",
+ "nativeSrc": "15731:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "15731:9:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "15742:4:45",
+ "nodeType": "YulLiteral",
+ "src": "15742:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15727:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15727:3:45"
+ },
+ "nativeSrc": "15727:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15727:20:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "15721:2:45",
+ "nodeType": "YulTypedName",
+ "src": "15721:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "15764:26:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "15764:26:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "15779:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "15779:2:45"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "15783:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "15783:6:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15775:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15775:3:45"
+ },
+ "nativeSrc": "15775:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15775:15:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "15768:3:45",
+ "nodeType": "YulTypedName",
+ "src": "15768:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "16122:284:45",
+ "nodeType": "YulBlock",
+ "src": "16122:284:45",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "16258:130:45",
+ "nodeType": "YulBlock",
+ "src": "16258:130:45",
+ "statements": [
+ {
+ "nativeSrc": "16322:12:45",
+ "nodeType": "YulAssignment",
+ "src": "16322:12:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "16333:1:45",
+ "nodeType": "YulLiteral",
+ "src": "16333:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "16322:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "16322:7:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "16359:7:45",
+ "nodeType": "YulAssignment",
+ "src": "16359:7:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "16365:1:45",
+ "nodeType": "YulLiteral",
+ "src": "16365:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "cb",
+ "nativeSrc": "16359:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16359:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "16241:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16241:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "16235:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "16235:5:45"
+ },
+ "nativeSrc": "16235:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16235:9:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "16252:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16252:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "16246:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "16246:5:45"
+ },
+ "nativeSrc": "16246:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16246:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "16232:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16232:2:45"
+ },
+ "nativeSrc": "16232:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16232:24:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "16225:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "16225:6:45"
+ },
+ "nativeSrc": "16225:32:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16225:32:45"
+ },
+ "nativeSrc": "16222:166:45",
+ "nodeType": "YulIf",
+ "src": "16222:166:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "16004:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16004:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "16008:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16008:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "16001:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16001:2:45"
+ },
+ "nativeSrc": "16001:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16001:11:45"
+ },
+ {
+ "name": "cb",
+ "nativeSrc": "16014:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16014:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15997:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15997:3:45"
+ },
+ "nativeSrc": "15997:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15997:20:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16019:1:45",
+ "nodeType": "YulLiteral",
+ "src": "16019:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "15994:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "15994:2:45"
+ },
+ "nativeSrc": "15994:27:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15994:27:45"
+ },
+ "nativeSrc": "15808:598:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "16022:99:45",
+ "nodeType": "YulBlock",
+ "src": "16022:99:45",
+ "statements": [
+ {
+ "nativeSrc": "16044:19:45",
+ "nodeType": "YulAssignment",
+ "src": "16044:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "16054:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16054:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16058:4:45",
+ "nodeType": "YulLiteral",
+ "src": "16058:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16050:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16050:3:45"
+ },
+ "nativeSrc": "16050:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16050:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "16044:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16044:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "16084:19:45",
+ "nodeType": "YulAssignment",
+ "src": "16084:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "cc",
+ "nativeSrc": "16094:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16094:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "16098:4:45",
+ "nodeType": "YulLiteral",
+ "src": "16098:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "16090:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16090:3:45"
+ },
+ "nativeSrc": "16090:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16090:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "cc",
+ "nativeSrc": "16084:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "16084:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "15812:181:45",
+ "nodeType": "YulBlock",
+ "src": "15812:181:45",
+ "statements": [
+ {
+ "nativeSrc": "15834:31:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "15834:31:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "15848:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "15848:10:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "15860:4:45",
+ "nodeType": "YulLiteral",
+ "src": "15860:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "15844:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "15844:3:45"
+ },
+ "nativeSrc": "15844:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15844:21:45"
+ },
+ "variables": [
+ {
+ "name": "cc",
+ "nativeSrc": "15838:2:45",
+ "nodeType": "YulTypedName",
+ "src": "15838:2:45",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "15808:598:45"
+ }
+ ]
+ },
+ "nativeSrc": "15452:968:45",
+ "nodeType": "YulCase",
+ "src": "15452:968:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "15457:1:45",
+ "nodeType": "YulLiteral",
+ "src": "15457:1:45",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "16441:74:45",
+ "nodeType": "YulBlock",
+ "src": "16441:74:45",
+ "statements": [
+ {
+ "nativeSrc": "16489:12:45",
+ "nodeType": "YulAssignment",
+ "src": "16489:12:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "16500:1:45",
+ "nodeType": "YulLiteral",
+ "src": "16500:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "16489:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "16489:7:45"
+ }
+ ]
+ }
+ ]
+ },
+ "nativeSrc": "16433:82:45",
+ "nodeType": "YulCase",
+ "src": "16433:82:45",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "15413:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "15413:6:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "15427:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "15427:10:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "15421:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "15421:5:45"
+ },
+ "nativeSrc": "15421:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15421:17:45"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "15410:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "15410:2:45"
+ },
+ "nativeSrc": "15410:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "15410:29:45"
+ },
+ "nativeSrc": "15403:1112:45",
+ "nodeType": "YulSwitch",
+ "src": "15403:1112:45"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18537,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15427:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18537,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15848:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18535,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15316:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18535,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "15731:9:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18543,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16322:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18543,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "16489:7:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18546,
+ "nodeType": "InlineAssembly",
+ "src": "15273:1252:45"
+ },
+ {
+ "expression": {
+ "id": 18547,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18543,
+ "src": "16542:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 18541,
+ "id": 18548,
+ "nodeType": "Return",
+ "src": "16535:14:45"
+ }
+ ]
+ },
+ "id": 18550,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "equal",
+ "nameLocation": "15149:5:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18538,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18535,
+ "mutability": "mutable",
+ "name": "_preBytes",
+ "nameLocation": "15168:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18550,
+ "src": "15155:22:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18534,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "15155:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18537,
+ "mutability": "mutable",
+ "name": "_postBytes",
+ "nameLocation": "15192:10:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18550,
+ "src": "15179:23:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18536,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "15179:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15154:49:45"
+ },
+ "returnParameters": {
+ "id": 18541,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18540,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18550,
+ "src": "15227:4:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18539,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "15227:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15226:6:45"
+ },
+ "scope": 18568,
+ "src": "15140:1416:45",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 18566,
+ "nodeType": "Block",
+ "src": "16713:2559:45",
+ "statements": [
+ {
+ "assignments": [
+ 18560
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 18560,
+ "mutability": "mutable",
+ "name": "success",
+ "nameLocation": "16728:7:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18566,
+ "src": "16723:12:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18559,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16723:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 18562,
+ "initialValue": {
+ "hexValue": "74727565",
+ "id": 18561,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "16738:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "16723:19:45"
+ },
+ {
+ "AST": {
+ "nativeSrc": "16762:2479:45",
+ "nodeType": "YulBlock",
+ "src": "16762:2479:45",
+ "statements": [
+ {
+ "nativeSrc": "16821:34:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "16821:34:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "16840:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "16840:14:45"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "16834:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "16834:5:45"
+ },
+ "nativeSrc": "16834:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16834:21:45"
+ },
+ "variables": [
+ {
+ "name": "fslot",
+ "nativeSrc": "16825:5:45",
+ "nodeType": "YulTypedName",
+ "src": "16825:5:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "16946:76:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "16946:76:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "16969:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "16969:5:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "16984:5:45",
+ "nodeType": "YulLiteral",
+ "src": "16984:5:45",
+ "type": "",
+ "value": "0x100"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "17002:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17002:5:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17009:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17009:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "16998:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16998:3:45"
+ },
+ "nativeSrc": "16998:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16998:13:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "16991:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "16991:6:45"
+ },
+ "nativeSrc": "16991:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16991:21:45"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "16980:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16980:3:45"
+ },
+ "nativeSrc": "16980:33:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16980:33:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17015:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17015:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "16976:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16976:3:45"
+ },
+ "nativeSrc": "16976:41:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16976:41:45"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "16965:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16965:3:45"
+ },
+ "nativeSrc": "16965:53:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16965:53:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17020:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17020:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "16961:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "16961:3:45"
+ },
+ "nativeSrc": "16961:61:45",
+ "nodeType": "YulFunctionCall",
+ "src": "16961:61:45"
+ },
+ "variables": [
+ {
+ "name": "slength",
+ "nativeSrc": "16950:7:45",
+ "nodeType": "YulTypedName",
+ "src": "16950:7:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "17035:32:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "17035:32:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "17056:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "17056:10:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "17050:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17050:5:45"
+ },
+ "nativeSrc": "17050:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17050:17:45"
+ },
+ "variables": [
+ {
+ "name": "mlength",
+ "nativeSrc": "17039:7:45",
+ "nodeType": "YulTypedName",
+ "src": "17039:7:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "17191:1945:45",
+ "nodeType": "YulBlock",
+ "src": "17191:1945:45",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "17502:1620:45",
+ "nodeType": "YulBlock",
+ "src": "17502:1620:45",
+ "statements": [
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "17574:340:45",
+ "nodeType": "YulBlock",
+ "src": "17574:340:45",
+ "statements": [
+ {
+ "nativeSrc": "17667:38:45",
+ "nodeType": "YulAssignment",
+ "src": "17667:38:45",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "17684:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17684:5:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17691:5:45",
+ "nodeType": "YulLiteral",
+ "src": "17691:5:45",
+ "type": "",
+ "value": "0x100"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "17680:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "17680:3:45"
+ },
+ "nativeSrc": "17680:17:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17680:17:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17699:5:45",
+ "nodeType": "YulLiteral",
+ "src": "17699:5:45",
+ "type": "",
+ "value": "0x100"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "17676:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "17676:3:45"
+ },
+ "nativeSrc": "17676:29:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17676:29:45"
+ },
+ "variableNames": [
+ {
+ "name": "fslot",
+ "nativeSrc": "17667:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17667:5:45"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "17782:110:45",
+ "nodeType": "YulBlock",
+ "src": "17782:110:45",
+ "statements": [
+ {
+ "nativeSrc": "17854:12:45",
+ "nodeType": "YulAssignment",
+ "src": "17854:12:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "17865:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17865:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "17854:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "17854:7:45"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "fslot",
+ "nativeSrc": "17744:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17744:5:45"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "17761:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "17761:10:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17773:4:45",
+ "nodeType": "YulLiteral",
+ "src": "17773:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "17757:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "17757:3:45"
+ },
+ "nativeSrc": "17757:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17757:21:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "17751:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "17751:5:45"
+ },
+ "nativeSrc": "17751:28:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17751:28:45"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "17741:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "17741:2:45"
+ },
+ "nativeSrc": "17741:39:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17741:39:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "17734:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "17734:6:45"
+ },
+ "nativeSrc": "17734:47:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17734:47:45"
+ },
+ "nativeSrc": "17731:161:45",
+ "nodeType": "YulIf",
+ "src": "17731:161:45"
+ }
+ ]
+ },
+ "nativeSrc": "17567:347:45",
+ "nodeType": "YulCase",
+ "src": "17567:347:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "17572:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17572:1:45",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "17943:1161:45",
+ "nodeType": "YulBlock",
+ "src": "17943:1161:45",
+ "statements": [
+ {
+ "nativeSrc": "18212:11:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "18212:11:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "18222:1:45",
+ "nodeType": "YulLiteral",
+ "src": "18222:1:45",
+ "type": "",
+ "value": "1"
+ },
+ "variables": [
+ {
+ "name": "cb",
+ "nativeSrc": "18216:2:45",
+ "nodeType": "YulTypedName",
+ "src": "18216:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18336:3:45",
+ "nodeType": "YulLiteral",
+ "src": "18336:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "name": "_preBytes.slot",
+ "nativeSrc": "18341:14:45",
+ "nodeType": "YulIdentifier",
+ "src": "18341:14:45"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "18329:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "18329:6:45"
+ },
+ "nativeSrc": "18329:27:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18329:27:45"
+ },
+ "nativeSrc": "18329:27:45",
+ "nodeType": "YulExpressionStatement",
+ "src": "18329:27:45"
+ },
+ {
+ "nativeSrc": "18381:30:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "18381:30:45",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "18401:3:45",
+ "nodeType": "YulLiteral",
+ "src": "18401:3:45",
+ "type": "",
+ "value": "0x0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18406:4:45",
+ "nodeType": "YulLiteral",
+ "src": "18406:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "18391:9:45",
+ "nodeType": "YulIdentifier",
+ "src": "18391:9:45"
+ },
+ "nativeSrc": "18391:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18391:20:45"
+ },
+ "variables": [
+ {
+ "name": "sc",
+ "nativeSrc": "18385:2:45",
+ "nodeType": "YulTypedName",
+ "src": "18385:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "18437:31:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "18437:31:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "_postBytes",
+ "nativeSrc": "18451:10:45",
+ "nodeType": "YulIdentifier",
+ "src": "18451:10:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18463:4:45",
+ "nodeType": "YulLiteral",
+ "src": "18463:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18447:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18447:3:45"
+ },
+ "nativeSrc": "18447:21:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18447:21:45"
+ },
+ "variables": [
+ {
+ "name": "mc",
+ "nativeSrc": "18441:2:45",
+ "nodeType": "YulTypedName",
+ "src": "18441:2:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "18493:27:45",
+ "nodeType": "YulVariableDeclaration",
+ "src": "18493:27:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "18508:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18508:2:45"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "18512:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "18512:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18504:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18504:3:45"
+ },
+ "nativeSrc": "18504:16:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18504:16:45"
+ },
+ "variables": [
+ {
+ "name": "end",
+ "nativeSrc": "18497:3:45",
+ "nodeType": "YulTypedName",
+ "src": "18497:3:45",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "18828:254:45",
+ "nodeType": "YulBlock",
+ "src": "18828:254:45",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "18894:162:45",
+ "nodeType": "YulBlock",
+ "src": "18894:162:45",
+ "statements": [
+ {
+ "nativeSrc": "18974:12:45",
+ "nodeType": "YulAssignment",
+ "src": "18974:12:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "18985:1:45",
+ "nodeType": "YulLiteral",
+ "src": "18985:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "18974:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "18974:7:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "19019:7:45",
+ "nodeType": "YulAssignment",
+ "src": "19019:7:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "19025:1:45",
+ "nodeType": "YulLiteral",
+ "src": "19025:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "cb",
+ "nativeSrc": "19019:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "19019:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "18877:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18877:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "18871:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "18871:5:45"
+ },
+ "nativeSrc": "18871:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18871:9:45"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "18888:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18888:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "18882:5:45",
+ "nodeType": "YulIdentifier",
+ "src": "18882:5:45"
+ },
+ "nativeSrc": "18882:9:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18882:9:45"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "18868:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18868:2:45"
+ },
+ "nativeSrc": "18868:24:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18868:24:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "18861:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "18861:6:45"
+ },
+ "nativeSrc": "18861:32:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18861:32:45"
+ },
+ "nativeSrc": "18858:198:45",
+ "nodeType": "YulIf",
+ "src": "18858:198:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "18689:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18689:2:45"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "18693:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18693:3:45"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "18686:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18686:2:45"
+ },
+ "nativeSrc": "18686:11:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18686:11:45"
+ },
+ {
+ "name": "cb",
+ "nativeSrc": "18699:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18699:2:45"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18682:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18682:3:45"
+ },
+ "nativeSrc": "18682:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18682:20:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18704:1:45",
+ "nodeType": "YulLiteral",
+ "src": "18704:1:45",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "18679:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18679:2:45"
+ },
+ "nativeSrc": "18679:27:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18679:27:45"
+ },
+ "nativeSrc": "18672:410:45",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "18707:120:45",
+ "nodeType": "YulBlock",
+ "src": "18707:120:45",
+ "statements": [
+ {
+ "nativeSrc": "18737:16:45",
+ "nodeType": "YulAssignment",
+ "src": "18737:16:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "sc",
+ "nativeSrc": "18747:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18747:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18751:1:45",
+ "nodeType": "YulLiteral",
+ "src": "18751:1:45",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18743:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18743:3:45"
+ },
+ "nativeSrc": "18743:10:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18743:10:45"
+ },
+ "variableNames": [
+ {
+ "name": "sc",
+ "nativeSrc": "18737:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18737:2:45"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "18782:19:45",
+ "nodeType": "YulAssignment",
+ "src": "18782:19:45",
+ "value": {
+ "arguments": [
+ {
+ "name": "mc",
+ "nativeSrc": "18792:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18792:2:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "18796:4:45",
+ "nodeType": "YulLiteral",
+ "src": "18796:4:45",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "18788:3:45",
+ "nodeType": "YulIdentifier",
+ "src": "18788:3:45"
+ },
+ "nativeSrc": "18788:13:45",
+ "nodeType": "YulFunctionCall",
+ "src": "18788:13:45"
+ },
+ "variableNames": [
+ {
+ "name": "mc",
+ "nativeSrc": "18782:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "18782:2:45"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "18676:2:45",
+ "nodeType": "YulBlock",
+ "src": "18676:2:45",
+ "statements": []
+ },
+ "src": "18672:410:45"
+ }
+ ]
+ },
+ "nativeSrc": "17935:1169:45",
+ "nodeType": "YulCase",
+ "src": "17935:1169:45",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "17534:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "17534:7:45"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "17543:2:45",
+ "nodeType": "YulLiteral",
+ "src": "17543:2:45",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "17531:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "17531:2:45"
+ },
+ "nativeSrc": "17531:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17531:15:45"
+ },
+ "nativeSrc": "17524:1580:45",
+ "nodeType": "YulSwitch",
+ "src": "17524:1580:45"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "17492:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "17492:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "17485:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "17485:6:45"
+ },
+ "nativeSrc": "17485:15:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17485:15:45"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "17478:6:45",
+ "nodeType": "YulIdentifier",
+ "src": "17478:6:45"
+ },
+ "nativeSrc": "17478:23:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17478:23:45"
+ },
+ "nativeSrc": "17475:1647:45",
+ "nodeType": "YulIf",
+ "src": "17475:1647:45"
+ }
+ ]
+ },
+ "nativeSrc": "17184:1952:45",
+ "nodeType": "YulCase",
+ "src": "17184:1952:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "17189:1:45",
+ "nodeType": "YulLiteral",
+ "src": "17189:1:45",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "19157:74:45",
+ "nodeType": "YulBlock",
+ "src": "19157:74:45",
+ "statements": [
+ {
+ "nativeSrc": "19205:12:45",
+ "nodeType": "YulAssignment",
+ "src": "19205:12:45",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "19216:1:45",
+ "nodeType": "YulLiteral",
+ "src": "19216:1:45",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "success",
+ "nativeSrc": "19205:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "19205:7:45"
+ }
+ ]
+ }
+ ]
+ },
+ "nativeSrc": "19149:82:45",
+ "nodeType": "YulCase",
+ "src": "19149:82:45",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "slength",
+ "nativeSrc": "17154:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "17154:7:45"
+ },
+ {
+ "name": "mlength",
+ "nativeSrc": "17163:7:45",
+ "nodeType": "YulIdentifier",
+ "src": "17163:7:45"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "17151:2:45",
+ "nodeType": "YulIdentifier",
+ "src": "17151:2:45"
+ },
+ "nativeSrc": "17151:20:45",
+ "nodeType": "YulFunctionCall",
+ "src": "17151:20:45"
+ },
+ "nativeSrc": "17144:2087:45",
+ "nodeType": "YulSwitch",
+ "src": "17144:2087:45"
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 18554,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17056:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18554,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17761:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18554,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18451:10:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18552,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "16840:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18552,
+ "isOffset": false,
+ "isSlot": true,
+ "src": "18341:14:45",
+ "suffix": "slot",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18560,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "17854:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18560,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "18974:7:45",
+ "valueSize": 1
+ },
+ {
+ "declaration": 18560,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "19205:7:45",
+ "valueSize": 1
+ }
+ ],
+ "id": 18563,
+ "nodeType": "InlineAssembly",
+ "src": "16753:2488:45"
+ },
+ {
+ "expression": {
+ "id": 18564,
+ "name": "success",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 18560,
+ "src": "19258:7:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "functionReturnParameters": 18558,
+ "id": 18565,
+ "nodeType": "Return",
+ "src": "19251:14:45"
+ }
+ ]
+ },
+ "id": 18567,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "equalStorage",
+ "nameLocation": "16571:12:45",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 18555,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18552,
+ "mutability": "mutable",
+ "name": "_preBytes",
+ "nameLocation": "16607:9:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18567,
+ "src": "16593:23:45",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18551,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "16593:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18554,
+ "mutability": "mutable",
+ "name": "_postBytes",
+ "nameLocation": "16639:10:45",
+ "nodeType": "VariableDeclaration",
+ "scope": 18567,
+ "src": "16626:23:45",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 18553,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "16626:5:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16583:72:45"
+ },
+ "returnParameters": {
+ "id": 18558,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 18557,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 18567,
+ "src": "16703:4:45",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 18556,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16703:4:45",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16702:6:45"
+ },
+ "scope": 18568,
+ "src": "16562:2710:45",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 18569,
+ "src": "370:18904:45",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "336:18939:45"
+ },
+ "id": 45
+ }
+ },
+ "contracts": {
+ "@iden3/contracts/interfaces/ICircuitValidator.sol": {
+ "ICircuitValidator": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "getSupportedCircuitIds",
+ "outputs": [
+ {
+ "internalType": "string[]",
+ "name": "ids",
+ "type": "string[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ }
+ ],
+ "name": "inputIndexOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "inputs",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "a",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "b",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "c",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "verify",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "inputIndex",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct ICircuitValidator.KeyToInputIndex[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "zkProof",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "contract IState",
+ "name": "state",
+ "type": "address"
+ }
+ ],
+ "name": "verifyV2",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct ICircuitValidator.Signal[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "version",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getSupportedCircuitIds()": "fb5af2a2",
+ "inputIndexOf(string)": "b16a394f",
+ "verify(uint256[],uint256[2],uint256[2][2],uint256[2],bytes,address)": "f177a69e",
+ "verifyV2(bytes,bytes,address,address)": "d6614a6b",
+ "version()": "54fd4d50"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSupportedCircuitIds\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"ids\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"inputIndexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"inputs\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"inputIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct ICircuitValidator.KeyToInputIndex[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"zkProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"contract IState\",\"name\":\"state\",\"type\":\"address\"}],\"name\":\"verifyV2\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct ICircuitValidator.Signal[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ICircuitValidator. Interface for circuit verification.\",\"kind\":\"dev\",\"methods\":{\"getSupportedCircuitIds()\":{\"details\":\"Get supported circuit ids.\",\"returns\":{\"ids\":\"Array of circuit ids supported.\"}},\"inputIndexOf(string)\":{\"details\":\"Get the index of the public input of the circuit by name.\",\"params\":{\"name\":\"Name of the public input.\"},\"returns\":{\"_0\":\"Index of the public input.\"}},\"verify(uint256[],uint256[2],uint256[2][2],uint256[2],bytes,address)\":{\"details\":\"Verify with the supported circuit informed in the request query data the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) and that the proof was generated by the sender.\",\"params\":{\"a\":\"\\u03c0a element of the groth16 proof.\",\"b\":\"\\u03c0b element of the groth16 proof.\",\"c\":\"\\u03c0c element of the groth16 proof.\",\"data\":\"Request query data of the credential to verify.\",\"inputs\":\"Public inputs of the circuit.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"Array of key to public input index as result.\"}},\"verifyV2(bytes,bytes,address,address)\":{\"details\":\"Verify with the supported circuit informed in the request query data the groth16 proof packed as bytes and that the proof was generated by the sender.\",\"params\":{\"data\":\"Request query data of the credential to verify.\",\"sender\":\"Sender of the proof.\",\"state\":\"State contract to get identities and gist states to check.\",\"zkProof\":\"Proof packed as bytes to verify.\"},\"returns\":{\"_0\":\"Array of public signals as result.\"}},\"version()\":{\"details\":\"Get version of the contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":\"ICircuitValidator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":{\"keccak256\":\"0xb69c84a4f46354a301c1971f8c518de42370003ab48d8a75d80b46de736371b8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://692c396954d2c5912ddd137b0ee1ab20f6962204213ae122cb34705a25e89cf2\",\"dweb:/ipfs/QmdpEkCHeu6dbsfDmxzSUKwtfndXoGZrPgy1M3Ly81p3Hi\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/interfaces/IIdentifiable.sol": {
+ "IIdentifiable": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "getId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getId()": "5d1ca631"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"IIdentifiable. Interface for identifiable entities.\",\"kind\":\"dev\",\"methods\":{\"getId()\":{\"details\":\"getId. Get id of the identity\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":\"IIdentifiable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": {
+ "IOnchainCredentialStatusResolver": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint64",
+ "name": "nonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationStatus",
+ "outputs": [
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootOfRoots",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots",
+ "name": "issuer",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.Proof",
+ "name": "mtp",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint64",
+ "name": "nonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationStatusByIdAndState",
+ "outputs": [
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootOfRoots",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots",
+ "name": "issuer",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.Proof",
+ "name": "mtp",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getRevocationStatus(uint256,uint64)": "110c96a7",
+ "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":\"IOnchainCredentialStatusResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/interfaces/IState.sol": {
+ "IState": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "getDefaultIdType",
+ "outputs": [
+ {
+ "internalType": "bytes2",
+ "name": "",
+ "type": "bytes2"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ }
+ ],
+ "name": "getGISTRootInfo",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedByRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtBlock",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IState.GistRootInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes2",
+ "name": "idType",
+ "type": "bytes2"
+ },
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ }
+ ],
+ "name": "getGistRootReplacedAt",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "replacedAtTimestamp",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ }
+ ],
+ "name": "getIdTypeIfSupported",
+ "outputs": [
+ {
+ "internalType": "bytes2",
+ "name": "",
+ "type": "bytes2"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ }
+ ],
+ "name": "getStateInfoById",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedByState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtBlock",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IState.StateInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ }
+ ],
+ "name": "getStateInfoByIdAndState",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedByState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "createdAtBlock",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "replacedAtBlock",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IState.StateInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ }
+ ],
+ "name": "getStateReplacedAt",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "replacedAtTimestamp",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ }
+ ],
+ "name": "idExists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes2",
+ "name": "idType",
+ "type": "bytes2"
+ }
+ ],
+ "name": "isIdTypeSupported",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "proofs",
+ "type": "bytes"
+ }
+ ],
+ "name": "processCrossChainProofs",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ }
+ ],
+ "name": "stateExists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "oldState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "isOldStateGenesis",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "a",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "b",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "c",
+ "type": "uint256[2]"
+ }
+ ],
+ "name": "transitState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "oldState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newState",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "isOldStateGenesis",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "methodId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "methodParams",
+ "type": "bytes"
+ }
+ ],
+ "name": "transitStateGeneric",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getDefaultIdType()": "133fe385",
+ "getGISTRootInfo(uint256)": "7c1a66de",
+ "getGistRootReplacedAt(bytes2,uint256)": "0a7a5469",
+ "getIdTypeIfSupported(uint256)": "dd16059e",
+ "getStateInfoById(uint256)": "b4bdea55",
+ "getStateInfoByIdAndState(uint256,uint256)": "53c87312",
+ "getStateReplacedAt(uint256,uint256)": "09478aa4",
+ "idExists(uint256)": "0b8a295a",
+ "isIdTypeSupported(bytes2)": "932e87a1",
+ "processCrossChainProofs(bytes)": "e28d24b0",
+ "stateExists(uint256,uint256)": "233a4d23",
+ "transitState(uint256,uint256,uint256,bool,uint256[2],uint256[2][2],uint256[2])": "28f88a65",
+ "transitStateGeneric(uint256,uint256,uint256,bool,uint256,bytes)": "7d0dcba5"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getDefaultIdType\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getGISTRootInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.GistRootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getGistRootReplacedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getIdTypeIfSupported\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStateInfoById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getStateInfoByIdAndState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getStateReplacedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"idExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"isIdTypeSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proofs\",\"type\":\"bytes\"}],\"name\":\"processCrossChainProofs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"stateExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newState\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isOldStateGenesis\",\"type\":\"bool\"},{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"}],\"name\":\"transitState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newState\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isOldStateGenesis\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"methodId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"methodParams\",\"type\":\"bytes\"}],\"name\":\"transitStateGeneric\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getDefaultIdType()\":{\"details\":\"Get defaultIdType\",\"returns\":{\"_0\":\"defaultIdType\"}},\"getGISTRootInfo(uint256)\":{\"details\":\"Retrieve the specific GIST root information.\",\"params\":{\"root\":\"GIST root.\"},\"returns\":{\"_0\":\"The GIST root info.\"}},\"getGistRootReplacedAt(bytes2,uint256)\":{\"details\":\"Get timestamp when the global state was replaced.\",\"params\":{\"idType\":\"Id type of the chain\",\"root\":\"Root of the global state\"},\"returns\":{\"replacedAtTimestamp\":\"Timestamp when the global state was replaced by new global state\"}},\"getIdTypeIfSupported(uint256)\":{\"details\":\"Get id if the id type supported for the id, otherwise revert.\",\"params\":{\"id\":\"An identity.\"},\"returns\":{\"_0\":\"The id type.\"}},\"getStateInfoById(uint256)\":{\"details\":\"Retrieve last state information of specific id.\",\"params\":{\"id\":\"An identity.\"},\"returns\":{\"_0\":\"The state info.\"}},\"getStateInfoByIdAndState(uint256,uint256)\":{\"details\":\"Retrieve state information by id and state.\",\"params\":{\"id\":\"An identity.\",\"state\":\"A state.\"},\"returns\":{\"_0\":\"The state info.\"}},\"getStateReplacedAt(uint256,uint256)\":{\"details\":\"Get timestamp when the identity state was replaced.\",\"params\":{\"id\":\"Identity\",\"state\":\"State of the identity\"},\"returns\":{\"replacedAtTimestamp\":\"Timestamp when the identity state was replaced by new identity state\"}},\"idExists(uint256)\":{\"details\":\"Check if identity exists.\",\"params\":{\"id\":\"Identity\"},\"returns\":{\"_0\":\"True if the identity exists\"}},\"isIdTypeSupported(bytes2)\":{\"details\":\"Check if the id type supported.\",\"params\":{\"idType\":\"id type.\"},\"returns\":{\"_0\":\"True if the id type supported.\"}},\"processCrossChainProofs(bytes)\":{\"details\":\"Process the cross chain proofs with the identities and global states.\",\"params\":{\"proofs\":\"Proofs with the identities and global states\"}},\"stateExists(uint256,uint256)\":{\"details\":\"Check if state exists.\",\"params\":{\"id\":\"Identity\",\"state\":\"State\"},\"returns\":{\"_0\":\"True if the state exists\"}},\"transitState(uint256,uint256,uint256,bool,uint256[2],uint256[2][2],uint256[2])\":{\"details\":\"Performs state transition\",\"params\":{\"a\":\"Proof.A\",\"b\":\"Proof.B\",\"c\":\"Proof.C\",\"id\":\"Identifier of the identity\",\"isOldStateGenesis\":\"Flag if previous identity state is genesis\",\"newState\":\"New state of the identity\",\"oldState\":\"Previous state of the identity\"}},\"transitStateGeneric(uint256,uint256,uint256,bool,uint256,bytes)\":{\"details\":\"Performs state transition\",\"params\":{\"id\":\"Identity\",\"isOldStateGenesis\":\"Is the previous state genesis?\",\"methodId\":\"State transition method id\",\"methodParams\":\"State transition method-specific params\",\"newState\":\"New identity state\",\"oldState\":\"Previous identity state\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IState.sol\":\"IState\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/interfaces/IZKPVerifier.sol": {
+ "IZKPVerifier": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ }
+ ],
+ "name": "getProofStatus",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bool",
+ "name": "isVerified",
+ "type": "bool"
+ },
+ {
+ "internalType": "string",
+ "name": "validatorVersion",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "blockNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "blockTimestamp",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IZKPVerifier.ProofStatus",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "getProofStorageField",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ }
+ ],
+ "name": "getZKPRequest",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "metadata",
+ "type": "string"
+ },
+ {
+ "internalType": "contract ICircuitValidator",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct IZKPVerifier.ZKPRequest",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "startIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "length",
+ "type": "uint256"
+ }
+ ],
+ "name": "getZKPRequests",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "metadata",
+ "type": "string"
+ },
+ {
+ "internalType": "contract ICircuitValidator",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct IZKPVerifier.ZKPRequest[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getZKPRequestsCount",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ }
+ ],
+ "name": "isProofVerified",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ }
+ ],
+ "name": "requestIdExists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "metadata",
+ "type": "string"
+ },
+ {
+ "internalType": "contract ICircuitValidator",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct IZKPVerifier.ZKPRequest",
+ "name": "request",
+ "type": "tuple"
+ }
+ ],
+ "name": "setZKPRequest",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "inputs",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "a",
+ "type": "uint256[2]"
+ },
+ {
+ "internalType": "uint256[2][2]",
+ "name": "b",
+ "type": "uint256[2][2]"
+ },
+ {
+ "internalType": "uint256[2]",
+ "name": "c",
+ "type": "uint256[2]"
+ }
+ ],
+ "name": "submitZKPResponse",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint64",
+ "name": "requestId",
+ "type": "uint64"
+ },
+ {
+ "internalType": "bytes",
+ "name": "zkProof",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct IZKPVerifier.ZKPResponse[]",
+ "name": "responses",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "crossChainProofs",
+ "type": "bytes"
+ }
+ ],
+ "name": "submitZKPResponseV2",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getProofStatus(address,uint64)": "8c1da2c9",
+ "getProofStorageField(address,uint64,string)": "d4858051",
+ "getZKPRequest(uint64)": "c76d0845",
+ "getZKPRequests(uint256,uint256)": "5f9e60d7",
+ "getZKPRequestsCount()": "6508e1b4",
+ "isProofVerified(address,uint64)": "49555fb1",
+ "requestIdExists(uint64)": "ab7bcfb7",
+ "setZKPRequest(uint64,(string,address,bytes))": "9f5223e0",
+ "submitZKPResponse(uint64,uint256[],uint256[2],uint256[2][2],uint256[2])": "b68967e2",
+ "submitZKPResponseV2((uint64,bytes,bytes)[],bytes)": "ade09fcd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getProofStatus\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isVerified\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"validatorVersion\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IZKPVerifier.ProofStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"getProofStorageField\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getZKPRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getZKPRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getZKPRequestsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"isProofVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"requestIdExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"setZKPRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"inputs\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"}],\"name\":\"submitZKPResponse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"zkProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPResponse[]\",\"name\":\"responses\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"crossChainProofs\",\"type\":\"bytes\"}],\"name\":\"submitZKPResponseV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"IZKPVerifier. Interface for verification of groth16 proofs for validators circuits.\",\"kind\":\"dev\",\"methods\":{\"getProofStatus(address,uint64)\":{\"details\":\"Get the proof status for the sender and ZKP request with requestId.\",\"params\":{\"requestId\":\"Request id of the proof.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"Proof status.\"}},\"getProofStorageField(address,uint64,string)\":{\"details\":\"Get the proof storage field for the user, requestId and key.\",\"params\":{\"key\":\"Key of the proof storage field.\",\"requestId\":\"Request id of the proof.\",\"user\":\"User address.\"},\"returns\":{\"_0\":\"Proof storage field.\"}},\"getZKPRequest(uint64)\":{\"details\":\"Get the ZKP request for the requestId.\",\"params\":{\"requestId\":\"Request id of the ZKP request.\"},\"returns\":{\"_0\":\"ZKP request.\"}},\"getZKPRequests(uint256,uint256)\":{\"details\":\"Get the ZKP requests.\",\"params\":{\"length\":\"Length of the ZKP requests.\",\"startIndex\":\"Start index of the ZKP requests.\"},\"returns\":{\"_0\":\"Array of the ZKP requests.\"}},\"getZKPRequestsCount()\":{\"details\":\"Get the ZKP request count.\",\"returns\":{\"_0\":\"ZKP request count.\"}},\"isProofVerified(address,uint64)\":{\"details\":\"Get if proof is verified for the sender and ZKP request with requestId.\",\"params\":{\"requestId\":\"Request id of the ZKP Request to verify.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"True if proof is verified for the sender and request id.\"}},\"requestIdExists(uint64)\":{\"details\":\"Check if the requestId exists.\",\"params\":{\"requestId\":\"Request id of the ZKP request.\"},\"returns\":{\"_0\":\"True if the requestId exists.\"}},\"setZKPRequest(uint64,(string,address,bytes))\":{\"details\":\"Set the ZKP request for the requestId.\",\"params\":{\"request\":\"ZKP request to set.\",\"requestId\":\"Request id of the ZKP request.\"}},\"submitZKPResponse(uint64,uint256[],uint256[2],uint256[2][2],uint256[2])\":{\"details\":\"Submit the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) for the ZKP request requestId.\",\"params\":{\"a\":\"\\u03c0a element of the groth16 proof.\",\"b\":\"\\u03c0b element of the groth16 proof.\",\"c\":\"\\u03c0c element of the groth16 proof.\",\"inputs\":\"Public inputs of the circuit.\",\"requestId\":\"Request id of the ZKP request.\"}},\"submitZKPResponseV2((uint64,bytes,bytes)[],bytes)\":{\"details\":\"Submit the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) for the ZKP request requestId.\",\"params\":{\"crossChainProofs\":\"The list of cross chain proofs from universal resolver (oracle).\",\"responses\":\"The list of responses including ZKP request ID, ZK proof and metadata.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IZKPVerifier.sol\":\"IZKPVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":{\"keccak256\":\"0xb69c84a4f46354a301c1971f8c518de42370003ab48d8a75d80b46de736371b8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://692c396954d2c5912ddd137b0ee1ab20f6962204213ae122cb34705a25e89cf2\",\"dweb:/ipfs/QmdpEkCHeu6dbsfDmxzSUKwtfndXoGZrPgy1M3Ly81p3Hi\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/interfaces/IZKPVerifier.sol\":{\"keccak256\":\"0x7e8f95b76c8588dcba937e1213f7743f4b3e061f0968d74794c80f32395cfecd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e879818eecd469e7fc7a2b359fe9146d18820c2b85dca9055756fc9fd3afafe5\",\"dweb:/ipfs/QmXzfbLz9aoafm31DdYT8zh6uFGAacxRJ8yeaL1YWBuMgJ\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/lib/ArrayUtils.sol": {
+ "ArrayUtils": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f1f705dbe3b0b3d1414a9c6a0a51d9995dbb4dde74a9b77caaa19585c24e09664736f6c634300081b0033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0x1F PUSH17 0x5DBE3B0B3D1414A9C6A0A51D9995DBB4DD 0xE7 BLOBBASEFEE SWAP12 PUSH24 0xCAAA19585C24E09664736F6C634300081B00330000000000 ",
+ "sourceMap": "103:822:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;103:822:5;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f1f705dbe3b0b3d1414a9c6a0a51d9995dbb4dde74a9b77caaa19585c24e09664736f6c634300081b0033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0x1F PUSH17 0x5DBE3B0B3D1414A9C6A0A51D9995DBB4DD 0xE7 BLOBBASEFEE SWAP12 PUSH24 0xCAAA19585C24E09664736F6C634300081B00330000000000 ",
+ "sourceMap": "103:822:5:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"A common functions for arrays.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/ArrayUtils.sol\":\"ArrayUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/lib/GenesisUtils.sol": {
+ "GenesisUtils": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea93cf4bd9c6e74e459d32ca9f1e2f966137b9b97eee6f81d4bdd3c972c8013364736f6c634300081b0033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA SWAP4 0xCF 0x4B 0xD9 0xC6 0xE7 0x4E GASLIMIT SWAP14 ORIGIN 0xCA SWAP16 0x1E 0x2F SWAP7 PUSH2 0x37B9 0xB9 PUSH31 0xEE6F81D4BDD3C972C8013364736F6C634300081B0033000000000000000000 ",
+ "sourceMap": "123:2048:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;123:2048:6;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea93cf4bd9c6e74e459d32ca9f1e2f966137b9b97eee6f81d4bdd3c972c8013364736f6c634300081b0033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA SWAP4 0xCF 0x4B 0xD9 0xC6 0xE7 0x4E GASLIMIT SWAP14 ORIGIN 0xCA SWAP16 0x1E 0x2F SWAP7 PUSH2 0x37B9 0xB9 PUSH31 0xEE6F81D4BDD3C972C8013364736F6C634300081B0033000000000000000000 ",
+ "sourceMap": "123:2048:6:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/GenesisUtils.sol\":\"GenesisUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/lib/IdentityBase.sol": {
+ "IdentityBase": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "claimIndexHash",
+ "type": "uint256"
+ }
+ ],
+ "name": "getClaimProof",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "claimIndexHash",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ }
+ ],
+ "name": "getClaimProofByRoot",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "claimIndexHash",
+ "type": "uint256"
+ }
+ ],
+ "name": "getClaimProofWithStateInfo",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootsRoot",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IdentityLib.StateInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getClaimsTreeRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getIsOldStateGenesis",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLatestPublishedClaimsRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLatestPublishedRevocationsRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLatestPublishedRootsRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getLatestPublishedState",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "revocationNonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationProof",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "revocationNonce",
+ "type": "uint64"
+ },
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRevocationProofByRoot",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint64",
+ "name": "revocationNonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationProofWithStateInfo",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootsRoot",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IdentityLib.StateInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint64",
+ "name": "nonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationStatus",
+ "outputs": [
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootOfRoots",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots",
+ "name": "issuer",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.Proof",
+ "name": "mtp",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "id",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint64",
+ "name": "nonce",
+ "type": "uint64"
+ }
+ ],
+ "name": "getRevocationStatusByIdAndState",
+ "outputs": [
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootOfRoots",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots",
+ "name": "issuer",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.Proof",
+ "name": "mtp",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRevocationsTreeRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "rootsTreeRoot",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRootProof",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "claimsTreeRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRootProofByRoot",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "rootsTreeRoot",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRootProofWithStateInfo",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "root",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "existence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "siblings",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "auxExistence",
+ "type": "bool"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxIndex",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "auxValue",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct SmtLib.Proof",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "claimsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootsRoot",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IdentityLib.StateInfo",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "state",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRootsByState",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "claimsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "revocationsRoot",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "rootsRoot",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IdentityLib.Roots",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRootsTreeRoot",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getSmtDepth",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_stateContractAddr",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes2",
+ "name": "idType",
+ "type": "bytes2"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getClaimProof(uint256)": "b57a40cb",
+ "getClaimProofByRoot(uint256,uint256)": "310d0d5b",
+ "getClaimProofWithStateInfo(uint256)": "b37feda4",
+ "getClaimsTreeRoot()": "3df432fc",
+ "getId()": "5d1ca631",
+ "getIsOldStateGenesis()": "f84c7c1e",
+ "getLatestPublishedClaimsRoot()": "523b8136",
+ "getLatestPublishedRevocationsRoot()": "9674cfa4",
+ "getLatestPublishedRootsRoot()": "c6365a3b",
+ "getLatestPublishedState()": "3d59ec60",
+ "getRevocationProof(uint64)": "26485063",
+ "getRevocationProofByRoot(uint64,uint256)": "e26ecb0b",
+ "getRevocationProofWithStateInfo(uint64)": "0033058d",
+ "getRevocationStatus(uint256,uint64)": "110c96a7",
+ "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921",
+ "getRevocationsTreeRoot()": "01c85c77",
+ "getRootProof(uint256)": "c1e32733",
+ "getRootProofByRoot(uint256,uint256)": "2d5c4f25",
+ "getRootProofWithStateInfo(uint256)": "443d7534",
+ "getRootsByState(uint256)": "b8db6871",
+ "getRootsTreeRoot()": "da68a0b1",
+ "getSmtDepth()": "3f0c6648",
+ "initialize(address,bytes2)": "406e8b4c",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getClaimProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsOldStateGenesis\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedClaimsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRevocationsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRootsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRevocationProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevocationsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRootProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getRootsByState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.Roots\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmtDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateContractAddr\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getClaimProof(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofWithStateInfo(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\"}},\"getClaimsTreeRoot()\":{\"details\":\"Retrieve ClaimsTree latest root.\",\"returns\":{\"_0\":\"The latest ClaimsTree root\"}},\"getId()\":{\"details\":\"returns identity Id\",\"returns\":{\"_0\":\"uint256 Id\"}},\"getIsOldStateGenesis()\":{\"details\":\"returns isOldStateGenesis flag\",\"returns\":{\"_0\":\"bool isOldStateGenesis\"}},\"getLatestPublishedClaimsRoot()\":{\"details\":\"returns latest published claims tree root\",\"returns\":{\"_0\":\"claimsRoot\"}},\"getLatestPublishedRevocationsRoot()\":{\"details\":\"returns latest published revocation tree root\",\"returns\":{\"_0\":\"revocationsRoot\"}},\"getLatestPublishedRootsRoot()\":{\"details\":\"returns latest published roots tree root\",\"returns\":{\"_0\":\"rootsRoot\"}},\"getLatestPublishedState()\":{\"details\":\"returns identity latest state\",\"returns\":{\"_0\":\"uint256 identityLatestState\"}},\"getRevocationProof(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofByRoot(uint64,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofWithStateInfo(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\"}},\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationsTreeRoot()\":{\"details\":\"Retrieve RevocationsTree latest root.\",\"returns\":{\"_0\":\"The latest RevocationsTree root\"}},\"getRootProof(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root\"}},\"getRootProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\",\"params\":{\"claimsTreeRoot\":\"- claims tree root\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root\"}},\"getRootProofWithStateInfo(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\"}},\"getRootsByState(uint256)\":{\"details\":\"returns historical claimsTree roots, revocationsTree roots, rootsTree roots by state\",\"params\":{\"state\":\"identity state\"},\"returns\":{\"_0\":\"set of roots\"}},\"getRootsTreeRoot()\":{\"details\":\"Retrieve RootsTree latest root.\",\"returns\":{\"_0\":\"The latest RootsTree root\"}},\"getSmtDepth()\":{\"details\":\"Get configured Identity SMT depth.\",\"returns\":{\"_0\":\"depth of the SMT\"}},\"initialize(address,bytes2)\":{\"details\":\"Initialization of IdentityLib library\",\"params\":{\"_stateContractAddr\":\"- address of the State contract\"}},\"supportsInterface(bytes4)\":{\"details\":\"supportsInterface. Check if the contract supports the interface\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/IdentityBase.sol\":\"IdentityBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]},\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/IdentityBase.sol\":{\"keccak256\":\"0xf8d2962e1838b9c850e887cd52736545b8d4228b14a1d64eb9ce5d8f53501b6f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://06dd87da9c644be8abe583c1c066d0926c860b110940b173f1a42f6766c20f52\",\"dweb:/ipfs/QmfK64Jf613m2eU1Dz6M7R6rjjKfCzscvyXdaoerw7kr4v\"]},\"@iden3/contracts/lib/IdentityLib.sol\":{\"keccak256\":\"0x1bbb8fbe53fcc817c216b4fd1fed3936ab6659bf83ceb7cb10fa474bcc8812f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1ee97a30fcba35d3c269b58b628c9114df4b915ff413c6f2b85f2a2454a9b54e\",\"dweb:/ipfs/QmbopmBVWniJcMLdFMHg7wkRwC2uTpRNXWLLAuCKUaAFcD\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ }
+ }
+ },
+ "@iden3/contracts/lib/IdentityLib.sol": {
+ "IdentityLib": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "IDENTITY_MAX_SMT_DEPTH",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {
+ "@iden3/contracts/lib/Poseidon.sol": {
+ "PoseidonUnit3L": [
+ {
+ "length": 20,
+ "start": 1636
+ }
+ ],
+ "PoseidonUnit4L": [
+ {
+ "length": 20,
+ "start": 5012
+ },
+ {
+ "length": 20,
+ "start": 5123
+ }
+ ]
+ },
+ "@iden3/contracts/lib/SmtLib.sol": {
+ "SmtLib": [
+ {
+ "length": 20,
+ "start": 943
+ },
+ {
+ "length": 20,
+ "start": 1089
+ },
+ {
+ "length": 20,
+ "start": 1492
+ },
+ {
+ "length": 20,
+ "start": 1665
+ },
+ {
+ "length": 20,
+ "start": 1790
+ },
+ {
+ "length": 20,
+ "start": 1916
+ },
+ {
+ "length": 20,
+ "start": 2133
+ },
+ {
+ "length": 20,
+ "start": 2199
+ },
+ {
+ "length": 20,
+ "start": 2323
+ },
+ {
+ "length": 20,
+ "start": 2447
+ },
+ {
+ "length": 20,
+ "start": 2707
+ },
+ {
+ "length": 20,
+ "start": 2844
+ },
+ {
+ "length": 20,
+ "start": 3557
+ },
+ {
+ "length": 20,
+ "start": 3663
+ },
+ {
+ "length": 20,
+ "start": 3771
+ },
+ {
+ "length": 20,
+ "start": 3896
+ },
+ {
+ "length": 20,
+ "start": 3957
+ },
+ {
+ "length": 20,
+ "start": 4052
+ },
+ {
+ "length": 20,
+ "start": 4133
+ },
+ {
+ "length": 20,
+ "start": 4266
+ },
+ {
+ "length": 20,
+ "start": 4395
+ },
+ {
+ "length": 20,
+ "start": 4597
+ },
+ {
+ "length": 20,
+ "start": 4677
+ },
+ {
+ "length": 20,
+ "start": 4806
+ },
+ {
+ "length": 20,
+ "start": 5282
+ },
+ {
+ "length": 20,
+ "start": 5471
+ }
+ ]
+ }
+ },
+ "object": "6121c6610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101355760003560e01c8063765c2c61116100b7578063d55da6a31161007b578063d55da6a3146102d6578063d5818b8e146102e9578063d5a3b14e146102fc578063e1f0eaa91461030f578063f8b802681461032f57600080fd5b8063765c2c611461025c5780637d0aba4f1461026f5780638ad7195d1461028257806397ac5391146102a2578063a3018d79146102b557600080fd5b80631e75e7f3116100fe5780631e75e7f3146101ee5780632c72e822146102015780632eb747d21461020957806359a60691146102295780636e2fe66c1461024957600080fd5b8062cf08901461013a57806306fb1575146101635780630b1a9cd31461018557806316579a36146101ba5780631a3046d7146101cd575b600080fd5b61014d610148366004611b8b565b610342565b60405161015a9190611c4f565b60405180910390f35b81801561016f57600080fd5b5061018361017e366004611c62565b6103e2565b005b610198610193366004611b8b565b61045a565b604080518251815260208084015190820152918101519082015260600161015a565b61014d6101c8366004611cab565b610564565b6101e06101db366004611ce1565b610606565b60405190815260200161015a565b6101e06101fc366004611ce1565b610801565b6101e0602881565b81801561021557600080fd5b50610183610224366004611ce1565b61083e565b81801561023557600080fd5b50610183610244366004611d11565b610c39565b6101e0610257366004611ce1565b610ee4565b6101e061026a366004611ce1565b610f21565b61014d61027d366004611d79565b610f5e565b81801561028e57600080fd5b5061018361029d366004611d79565b610fbd565b61014d6102b0366004611b8b565b61103d565b6102c86102c3366004611b8b565b611093565b60405161015a929190611da5565b61014d6102e4366004611c62565b61118e565b61014d6102f7366004611c62565b6111de565b6102c861030a366004611b8b565b61122e565b81801561031b57600080fd5b5061018361032a366004611de6565b6112af565b6102c861033d366004611d79565b6114be565b61034a611b24565b609a830154604051633ce0bd4b60e11b815260048086019082015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156103b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103d99190810190611f1f565b90505b92915050565b60405163c1d29f0160e01b8152600484810190820152602481018390526044810182905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561043d57600080fd5b505af4158015610451573d6000803e3d6000fd5b50505050505050565b61047e60405180606001604052806000815260200160008152602001600081525090565b60008281526003840160205260409020541515806104ae5750600082815260038401602052604090206001015415155b806104cb5750600082815260038401602052604090206002015415155b6105275760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520646f65736e2774206578696044820152611cdd60f21b60648201526084015b60405180910390fd5b5060009081526003919091016020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b61056c611b24565b604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff841660248201526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156105d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fe9190810190611f1f565b949350505050565b6040805160608101918290526379f9712560e01b90915260048201606482015260009073__$03320550cd1b629da90608251571b2532e$__906325cc70e8908073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__6379f9712560848301602060405180830381865af4158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190611fe7565b81526040516379f9712560e01b815260368701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af41580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611fe7565b81526040516379f9712560e01b815260688701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af415801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611fe7565b8152506040518263ffffffff1660e01b81526004016107c09190612000565b602060405180830381865af41580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc9190611fe7565b6040516379f9712560e01b815260688201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b60018101546040516379f9712560e01b815260048084019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190611fe7565b6040516379f9712560e01b815260368501600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109389190611fe7565b6040516379f9712560e01b815260688601600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b49190611fe7565b609a860154909150831415806109ce5750609b8501548214155b806109dd5750609c8501548114155b610a295760405162461bcd60e51b815260206004820152601e60248201527f4964656e7469747920747265657320686176656e2774206368616e6765640000604482015260640161051e565b609a8501548314610aa85760405163c1d29f0160e01b8152606886016004820152602481018490526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b158015610a8f57600080fd5b505af4158015610aa3573d6000803e3d6000fd5b505050505b6000610ab386610606565b60018701819055609a8701859055609b87018490556040516379f9712560e01b815260688801600482015290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611fe7565b609c870181905560028701805460ff198116909155600188015460408051606081018252609a8b01548152609b8b015460208201529081019390935260ff90911691610b8e918991611548565b600287015487546101009091046001600160a01b031690637d0dcba590888585600160006040519080825280601f01601f191660200182016040528015610bdc576020820181803683370190505b506040518763ffffffff1660e01b8152600401610bfe96959493929190612031565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b5050505050505050505050565b6028821115610c9e5760405162461bcd60e51b815260206004820152602b60248201527f534d542064657074682069732067726561746572207468616e206d617820616c60448201526a0d8deeecac840c8cae0e8d60ab1b606482015260840161051e565b600285018054610100600160a81b0319166101006001600160a01b038781168202929092179283905560405163932e87a160e01b81526001600160f01b0319851660048201529204169063932e87a190602401602060405180830381865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3291906120a4565b610d7e5760405162461bcd60e51b815260206004820152601860248201527f69642074797065206973206e6f7420737570706f727465640000000000000000604482015260640161051e565b60028501805460ff19166001179055604051639e43b81360e01b81526004808701908201526024810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__90639e43b8139060440160006040518083038186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b5050604051639e43b81360e01b81526036880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610e4d57600080fd5b505af4158015610e61573d6000803e3d6000fd5b5050604051639e43b81360e01b81526068880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610eb957600080fd5b505af4158015610ecd573d6000803e3d6000fd5b50505050610edb8184611618565b90945550505050565b6040516379f9712560e01b815260048281019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b6040516379f9712560e01b815260368201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b610f66611b24565b609b830154604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff84166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b60405163c1d29f0160e01b815260368301600482015267ffffffffffffffff821660248201526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561102157600080fd5b505af4158015611035573d6000803e3d6000fd5b505050505050565b611045611b24565b609c830154604051633ce0bd4b60e11b815260688501600482015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b61109b611b24565b6110c66040518060800160405280600081526020016000815260200160008152602001600081525090565b609c840154604051633ce0bd4b60e11b815260688601600482015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af415801561112d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111559190810190611f1f565b6040805160808101825260018701548152609a8701546020820152609b87015491810191909152609c9095015460608601529492505050565b611196611b24565b604051633ce0bd4b60e11b8152606885016004820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b6111e6611b24565b604051633ce0bd4b60e11b8152600485810190820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b611236611b24565b6112616040518060800160405280600081526020016000815260200160008152602001600081525090565b609a840154604051633ce0bd4b60e11b815260048087019082015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b6112b7611b6d565b6112bf611b6d565b60005b60048160ff16101561134857838160ff16600881106112e3576112e36120bf565b6020020135838260ff16600481106112fd576112fd6120bf565b60200201528361130e8260046120eb565b60ff1660088110611321576113216120bf565b6020020135828260ff166004811061133b5761133b6120bf565b60200201526001016112c2565b5060405163248f667760e01b815260009073__$2650005024f117ed9b6c57ec1bf6374b69$__9063248f667790611383908690600401612104565b602060405180830381865af41580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190611fe7565b9050600073__$2650005024f117ed9b6c57ec1bf6374b69$__63248f6677846040518263ffffffff1660e01b81526004016113ff9190612104565b602060405180830381865af415801561141c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114409190611fe7565b60405163c1d29f0160e01b8152600488810190820152602481018490526044810182905290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561149e57600080fd5b505af41580156114b2573d6000803e3d6000fd5b50505050505050505050565b6114c6611b24565b6114f16040518060800160405280600081526020016000815260200160008152602001600081525090565b609b840154604051633ce0bd4b60e11b815260368601600482015267ffffffffffffffff85166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b600082815260038401602052604090205415801561157757506000828152600384016020526040902060010154155b801561159457506000828152600384016020526040902060020154155b6115eb5760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520616c7265616479206578696044820152611cdd60f21b606482015260840161051e565b60009182526003909201602090815260409182902083518155908301516001820155910151600290910155565b60006001600160a01b0382166105fe8461163183611636565b61177b565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b6008827fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff0016901c1790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b6010827fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff000016901c1790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b6020827fffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000000016901c17905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b60408277ffffffffffffffff0000000000000000ffffffffffffffff1916901c179050608081901b608082901c179050919050565b60008061178f61178a84611636565b6118af565b905060006117ac82601b84516117a5919061212c565b601b6118d9565b6040516001600160f01b0319871660208201529091506000906117e190602201604051602081830303815290604052836118e6565b905060006118056117f1836118f2565b600881811b62ffff001691901c60ff161790565b6040805160f083901b6001600160f01b0319166020820152815160028183030181526022909101909152909150600061183e84836118e6565b90508051601f146118915760405162461bcd60e51b815260206004820181905260248201527f69644279746573207265717569726573203331206c656e677468206172726179604482015260640161051e565b6118a261189d8261198f565b611636565b9998505050505050505050565b60408051602080825281830190925260609160208201818036833750505060208101929092525090565b60606105fe84848461199a565b60606103d98383611aa7565b60008151601d1461194f5760405162461bcd60e51b815260206004820152602160248201527f436865636b73756d207265717569726573203239206c656e67746820617272616044820152607960f81b606482015260840161051e565b60005b82518110156119895782818151811061196d5761196d6120bf565b016020015161197f9060f81c8361213f565b9150600101611952565b50919050565b60006103dc82612159565b6060816119a881601f61217d565b10156119e75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161051e565b6119f1828461217d565b84511015611a355760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161051e565b606082158015611a545760405191506000825260208201604052611a9e565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611a8d578051835260209283019201611a75565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b81831015611ad8578051835260209283019201611ac0565b50855184518101855292509050808201602086015b81831015611b05578051835260209283019201611aed565b508651929092011591909101601f01601f191660405250905092915050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180608001604052806004906020820280368337509192915050565b60008060408385031215611b9e57600080fd5b50508035926020909101359150565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b80831015611c055783518252602082019150602084019350600183019250611be2565b50606085015160608701526080850151608087015260a08501519250611c2f60a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b6020815260006103d96020830184611bad565b600080600060608486031215611c7757600080fd5b505081359360208301359350604090920135919050565b803567ffffffffffffffff81168114611ca657600080fd5b919050565b600080600060608486031215611cc057600080fd5b83359250611cd060208501611c8e565b929592945050506040919091013590565b600060208284031215611cf357600080fd5b5035919050565b80356001600160a01b0381168114611ca657600080fd5b600080600080600060a08688031215611d2957600080fd5b85359450611d3960208701611cfa565b9350611d4760408701611cfa565b92506060860135915060808601356001600160f01b031981168114611d6b57600080fd5b809150509295509295909350565b60008060408385031215611d8c57600080fd5b82359150611d9c60208401611c8e565b90509250929050565b60a081526000611db860a0830185611bad565b9050825160208301526020830151604083015260408301516060830152606083015160808301529392505050565b6000806101208385031215611dfa57600080fd5b823591506101208301841015611e0f57600080fd5b50926020919091019150565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715611e5557611e55611e1b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e8457611e84611e1b565b604052919050565b80518015158114611ca657600080fd5b600082601f830112611ead57600080fd5b815167ffffffffffffffff811115611ec757611ec7611e1b565b8060051b611ed760208201611e5b565b91825260208185018101929081019086841115611ef357600080fd5b6020860192505b83831015611f15578251825260209283019290910190611efa565b9695505050505050565b600060208284031215611f3157600080fd5b815167ffffffffffffffff811115611f4857600080fd5b82016101008185031215611f5b57600080fd5b611f63611e31565b81518152611f7360208301611e8c565b6020820152604082015167ffffffffffffffff811115611f9257600080fd5b611f9e86828501611e9c565b6040830152506060828101519082015260808083015190820152611fc460a08301611e8c565b60a082015260c0828101519082015260e091820151918101919091529392505050565b600060208284031215611ff957600080fd5b5051919050565b60608101818360005b6003811015612028578151835260209283019290910190600101612009565b50505092915050565b868152856020820152846040820152831515606082015282608082015260c060a0820152600082518060c084015260005b8181101561207f57602081860181015160e0868401015201612062565b50600060e0828501015260e0601f19601f830116840101915050979650505050505050565b6000602082840312156120b657600080fd5b6103d982611e8c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156103dc576103dc6120d5565b60808101818360005b600481101561202857815183526020928301929091019060010161210d565b818103818111156103dc576103dc6120d5565b61ffff81811683821601908111156103dc576103dc6120d5565b805160208083015191908110156119895760001960209190910360031b1b16919050565b808201808211156103dc576103dc6120d556fea2646970667358221220aa65629b816777c025a82a1ec2ced268f4da03b01343c1453af68c59f0d7b0f064736f6c634300081b0033",
+ "opcodes": "PUSH2 0x21C6 PUSH2 0x39 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x765C2C61 GT PUSH2 0xB7 JUMPI DUP1 PUSH4 0xD55DA6A3 GT PUSH2 0x7B JUMPI DUP1 PUSH4 0xD55DA6A3 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0xD5818B8E EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xD5A3B14E EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0xE1F0EAA9 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xF8B80268 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x765C2C61 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x7D0ABA4F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x8AD7195D EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0x97AC5391 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xA3018D79 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1E75E7F3 GT PUSH2 0xFE JUMPI DUP1 PUSH4 0x1E75E7F3 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x2C72E822 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x2EB747D2 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x59A60691 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0x6E2FE66C EQ PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xCF0890 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x6FB1575 EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xB1A9CD3 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x16579A36 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x1A3046D7 EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x1C4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x198 PUSH2 0x193 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CAB JUMP JUMPDEST PUSH2 0x564 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x606 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1FC CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x28 DUP2 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x83E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0xC39 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x26A CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xF21 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x27D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xF5E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xFBD JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x103D JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x1093 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP3 SWAP2 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x118E JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x30A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x122E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE6 JUMP JUMPDEST PUSH2 0x12AF JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0x14BE JUMP JUMPDEST PUSH2 0x34A PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9A DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP7 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x3B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x3D9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP5 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x451 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x47E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0x4AE JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO JUMPDEST DUP1 PUSH2 0x4CB JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO ISZERO JUMPDEST PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520646F65736E277420657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x56C PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x5D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x5FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH4 0x79F97125 PUSH1 0xE0 SHL SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 DUP1 PUSH20 0x0 PUSH4 0x79F97125 PUSH1 0x84 DUP4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x681 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6A5 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x6FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x723 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP2 SWAP1 PUSH2 0x2000 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x7DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP5 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x898 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8BC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x914 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x938 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9B4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9A DUP7 ADD SLOAD SWAP1 SWAP2 POP DUP4 EQ ISZERO DUP1 PUSH2 0x9CE JUMPI POP PUSH1 0x9B DUP6 ADD SLOAD DUP3 EQ ISZERO JUMPDEST DUP1 PUSH2 0x9DD JUMPI POP PUSH1 0x9C DUP6 ADD SLOAD DUP2 EQ ISZERO JUMPDEST PUSH2 0xA29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4964656E7469747920747265657320686176656E2774206368616E6765640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x9A DUP6 ADD SLOAD DUP4 EQ PUSH2 0xAA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xAA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x0 PUSH2 0xAB3 DUP7 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x9A DUP8 ADD DUP6 SWAP1 SSTORE PUSH1 0x9B DUP8 ADD DUP5 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9C DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x2 DUP8 ADD DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP9 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x9A DUP12 ADD SLOAD DUP2 MSTORE PUSH1 0x9B DUP12 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH2 0xB8E SWAP2 DUP10 SWAP2 PUSH2 0x1548 JUMP JUMPDEST PUSH1 0x2 DUP8 ADD SLOAD DUP8 SLOAD PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7D0DCBA5 SWAP1 DUP9 DUP6 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBDC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBFE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2031 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP3 GT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x534D542064657074682069732067726561746572207468616E206D617820616C PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0xD8DEEECAC840C8CAE0E8D PUSH1 0xAB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MUL SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x932E87A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DIV AND SWAP1 PUSH4 0x932E87A1 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD32 SWAP2 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xD7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69642074797065206973206E6F7420737570706F727465640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x9E43B813 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xDF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xE61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xECD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xEDB DUP2 DUP5 PUSH2 0x1618 JUMP JUMPDEST SWAP1 SWAP5 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP3 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH2 0xF66 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9B DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP4 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1035 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1045 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9C DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH2 0x109B PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x10C6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9C DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x112D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1155 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x1 DUP8 ADD SLOAD DUP2 MSTORE PUSH1 0x9A DUP8 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x9B DUP8 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9C SWAP1 SWAP6 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1196 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x11E6 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP6 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x1236 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x1261 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9A DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH2 0x12B7 PUSH2 0x1B6D JUMP JUMPDEST PUSH2 0x12BF PUSH2 0x1B6D JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1348 JUMPI DUP4 DUP2 PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x12E3 JUMPI PUSH2 0x12E3 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP4 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x12FD JUMPI PUSH2 0x12FD PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE DUP4 PUSH2 0x130E DUP3 PUSH1 0x4 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x1321 JUMPI PUSH2 0x1321 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP3 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x133B JUMPI PUSH2 0x133B PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH1 0x1 ADD PUSH2 0x12C2 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x248F6677 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x248F6677 SWAP1 PUSH2 0x1383 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x13A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0x0 PUSH4 0x248F6677 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13FF SWAP2 SWAP1 PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x141C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1440 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP9 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x14B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14C6 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x14F1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9B DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 ISZERO PUSH2 0x1577 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1594 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x15EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520616C726561647920657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP1 DUP4 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5FE DUP5 PUSH2 0x1631 DUP4 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x177B JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x8 DUP2 PUSH31 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF AND SWAP1 SHL PUSH1 0x8 DUP3 PUSH32 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x10 DUP2 PUSH30 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF AND SWAP1 SHL PUSH1 0x10 DUP3 PUSH32 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x20 DUP2 PUSH28 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF AND SWAP1 SHL PUSH1 0x20 DUP3 PUSH32 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x40 DUP2 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF AND SWAP1 SHL PUSH1 0x40 DUP3 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF NOT AND SWAP1 SHR OR SWAP1 POP PUSH1 0x80 DUP2 SWAP1 SHL PUSH1 0x80 DUP3 SWAP1 SHR OR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x178F PUSH2 0x178A DUP5 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17AC DUP3 PUSH1 0x1B DUP5 MLOAD PUSH2 0x17A5 SWAP2 SWAP1 PUSH2 0x212C JUMP JUMPDEST PUSH1 0x1B PUSH2 0x18D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x17E1 SWAP1 PUSH1 0x22 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1805 PUSH2 0x17F1 DUP4 PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SHL PUSH3 0xFFFF00 AND SWAP2 SWAP1 SHR PUSH1 0xFF AND OR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x183E DUP5 DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x1F EQ PUSH2 0x1891 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69644279746573207265717569726573203331206C656E677468206172726179 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x18A2 PUSH2 0x189D DUP3 PUSH2 0x198F JUMP JUMPDEST PUSH2 0x1636 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5FE DUP5 DUP5 DUP5 PUSH2 0x199A JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D9 DUP4 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x1D EQ PUSH2 0x194F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B73756D207265717569726573203239206C656E6774682061727261 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1989 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x196D JUMPI PUSH2 0x196D PUSH2 0x20BF JUMP JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH2 0x197F SWAP1 PUSH1 0xF8 SHR DUP4 PUSH2 0x213F JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0x1952 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC DUP3 PUSH2 0x2159 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x19A8 DUP2 PUSH1 0x1F PUSH2 0x217D JUMP JUMPDEST LT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x19F1 DUP3 DUP5 PUSH2 0x217D JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1A35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1A54 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A9E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1A8D JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1A75 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP1 POP DUP4 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 DUP2 ADD PUSH1 0x20 DUP8 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1AD8 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AC0 JUMP JUMPDEST POP DUP6 MLOAD DUP5 MLOAD DUP2 ADD DUP6 MSTORE SWAP3 POP SWAP1 POP DUP1 DUP3 ADD PUSH1 0x20 DUP7 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1B05 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AED JUMP JUMPDEST POP DUP7 MLOAD SWAP3 SWAP1 SWAP3 ADD ISZERO SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x1C05 JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x1BE2 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x1C2F PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1BAD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0x1CD0 PUSH1 0x20 DUP6 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x1D39 PUSH1 0x20 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x1D47 PUSH1 0x40 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D9C PUSH1 0x20 DUP5 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1DB8 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x1BAD JUMP JUMPDEST SWAP1 POP DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x120 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x120 DUP4 ADD DUP5 LT ISZERO PUSH2 0x1E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E55 JUMPI PUSH2 0x1E55 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E84 JUMPI PUSH2 0x1E84 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1EAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EC7 JUMPI PUSH2 0x1EC7 PUSH2 0x1E1B JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x1ED7 PUSH1 0x20 DUP3 ADD PUSH2 0x1E5B JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x1EF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x1F15 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1EFA JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x1F5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F63 PUSH2 0x1E31 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH2 0x1F73 PUSH1 0x20 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F9E DUP7 DUP3 DUP6 ADD PUSH2 0x1E9C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x1FC4 PUSH1 0xA0 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x207F JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0xE0 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x2062 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xE0 DUP3 DUP6 ADD ADD MSTORE PUSH1 0xE0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D9 DUP3 PUSH2 0x1E8C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x210D JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH2 0xFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA PUSH6 0x629B816777C0 0x25 0xA8 0x2A 0x1E 0xC2 0xCE 0xD2 PUSH9 0xF4DA03B01343C1453A 0xF6 DUP13 MSIZE CREATE 0xD7 0xB0 CREATE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ",
+ "sourceMap": "335:14838:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;335:14838:8;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@IDENTITY_MAX_SMT_DEPTH_1345": {
+ "entryPoint": null,
+ "id": 1345,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@addClaimHash_1590": {
+ "entryPoint": 994,
+ "id": 1590,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@addClaim_1567": {
+ "entryPoint": 4783,
+ "id": 1567,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@addressToUint256_2824": {
+ "entryPoint": null,
+ "id": 2824,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@calcIdFromEthAddress_815": {
+ "entryPoint": 5656,
+ "id": 815,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@calcIdFromGenesisState_789": {
+ "entryPoint": 6011,
+ "id": 789,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@calcIdentityState_1808": {
+ "entryPoint": 1542,
+ "id": 1808,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@concat_18253": {
+ "entryPoint": 6823,
+ "id": 18253,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@concat_2787": {
+ "entryPoint": 6374,
+ "id": 2787,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getClaimProofByRoot_1894": {
+ "entryPoint": 4574,
+ "id": 1894,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@getClaimProofWithStateInfo_1871": {
+ "entryPoint": 4654,
+ "id": 1871,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "@getClaimProof_1831": {
+ "entryPoint": 834,
+ "id": 1831,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getClaimsTreeRoot_1910": {
+ "entryPoint": 3812,
+ "id": 1910,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@getRevocationProofByRoot_2005": {
+ "entryPoint": 1380,
+ "id": 2005,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@getRevocationProofWithStateInfo_1979": {
+ "entryPoint": 5310,
+ "id": 1979,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "@getRevocationProof_1936": {
+ "entryPoint": 3934,
+ "id": 1936,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getRevocationsTreeRoot_2021": {
+ "entryPoint": 3873,
+ "id": 2021,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@getRootProofByRoot_2107": {
+ "entryPoint": 4494,
+ "id": 2107,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@getRootProofWithStateInfo_2084": {
+ "entryPoint": 4243,
+ "id": 2084,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "@getRootProof_2044": {
+ "entryPoint": 4157,
+ "id": 2044,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getRootsByState_2216": {
+ "entryPoint": 1114,
+ "id": 2216,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getRootsTreeRoot_2123": {
+ "entryPoint": 2049,
+ "id": 2123,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@initialize_1486": {
+ "entryPoint": 3129,
+ "id": 1486,
+ "parameterSlots": 5,
+ "returnSlots": 0
+ },
+ "@padRightToUint256_2760": {
+ "entryPoint": 6543,
+ "id": 2760,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@reverseUint16_2657": {
+ "entryPoint": null,
+ "id": 2657,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@reverseUint256_2632": {
+ "entryPoint": 5686,
+ "id": 2632,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@revokeClaim_1614": {
+ "entryPoint": 4029,
+ "id": 1614,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@slice_18299": {
+ "entryPoint": 6554,
+ "id": 18299,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@slice_2807": {
+ "entryPoint": 6361,
+ "id": 2807,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@sum_657": {
+ "entryPoint": 6386,
+ "id": 657,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@transitState_1778": {
+ "entryPoint": 2110,
+ "id": 1778,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "@uint256ToBytes_2535": {
+ "entryPoint": 6319,
+ "id": 2535,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@writeHistory_2171": {
+ "entryPoint": 5448,
+ "id": 2171,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "abi_decode_address": {
+ "entryPoint": 7418,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_decode_array_uint256_dyn_fromMemory": {
+ "entryPoint": 7836,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_bool_fromMemory": {
+ "entryPoint": 7820,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 8356,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptr": {
+ "entryPoint": 7393,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_addresst_addresst_uint256t_bytes2": {
+ "entryPoint": 7441,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 5
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_array$_t_uint256_$8_calldata_ptr": {
+ "entryPoint": 7654,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256": {
+ "entryPoint": 7051,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256t_uint256": {
+ "entryPoint": 7266,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64": {
+ "entryPoint": 7545,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64t_uint256": {
+ "entryPoint": 7339,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory": {
+ "entryPoint": 7967,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 8167,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_uint64": {
+ "entryPoint": 7310,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_bool": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_struct_Proof": {
+ "entryPoint": 7085,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_packed_t_bytes2__to_t_bytes2__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed": {
+ "entryPoint": 8192,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_array$_t_uint256_$4_memory_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed": {
+ "entryPoint": 8452,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bytes2__to_t_bytes2__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr__to_t_uint256__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed": {
+ "entryPoint": 7247,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_library_reversed": {
+ "entryPoint": 7589,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bool_t_rational_1_by_1_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
+ "entryPoint": 8241,
+ "id": null,
+ "parameterSlots": 7,
+ "returnSlots": 1
+ },
+ "allocate_memory": {
+ "entryPoint": 7771,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "allocate_memory_2312": {
+ "entryPoint": 7729,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint16": {
+ "entryPoint": 8511,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 8573,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint8": {
+ "entryPoint": 8427,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_sub_t_uint256": {
+ "entryPoint": 8492,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32": {
+ "entryPoint": 8537,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 8405,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x32": {
+ "entryPoint": 8383,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 7707,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nativeSrc": "0:17487:46",
+ "nodeType": "YulBlock",
+ "src": "0:17487:46",
+ "statements": [
+ {
+ "nativeSrc": "6:3:46",
+ "nodeType": "YulBlock",
+ "src": "6:3:46",
+ "statements": []
+ },
+ {
+ "body": {
+ "nativeSrc": "124:259:46",
+ "nodeType": "YulBlock",
+ "src": "124:259:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "170:16:46",
+ "nodeType": "YulBlock",
+ "src": "170:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "179:1:46",
+ "nodeType": "YulLiteral",
+ "src": "179:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "182:1:46",
+ "nodeType": "YulLiteral",
+ "src": "182:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "172:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "172:6:46"
+ },
+ "nativeSrc": "172:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "172:12:46"
+ },
+ "nativeSrc": "172:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "172:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "145:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "145:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "154:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "154:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "141:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "141:3:46"
+ },
+ "nativeSrc": "141:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "141:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "166:2:46",
+ "nodeType": "YulLiteral",
+ "src": "166:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "137:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "137:3:46"
+ },
+ "nativeSrc": "137:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "137:32:46"
+ },
+ "nativeSrc": "134:52:46",
+ "nodeType": "YulIf",
+ "src": "134:52:46"
+ },
+ {
+ "nativeSrc": "195:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "195:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "208:1:46",
+ "nodeType": "YulLiteral",
+ "src": "208:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "199:5:46",
+ "nodeType": "YulTypedName",
+ "src": "199:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "218:32:46",
+ "nodeType": "YulAssignment",
+ "src": "218:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "240:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "240:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "227:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "227:12:46"
+ },
+ "nativeSrc": "227:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "227:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "218:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "218:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "259:15:46",
+ "nodeType": "YulAssignment",
+ "src": "259:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "269:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "269:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "259:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "259:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "283:16:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "283:16:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "298:1:46",
+ "nodeType": "YulLiteral",
+ "src": "298:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value_1",
+ "nativeSrc": "287:7:46",
+ "nodeType": "YulTypedName",
+ "src": "287:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "308:43:46",
+ "nodeType": "YulAssignment",
+ "src": "308:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "336:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "336:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "347:2:46",
+ "nodeType": "YulLiteral",
+ "src": "347:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "332:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "332:3:46"
+ },
+ "nativeSrc": "332:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "332:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "319:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "319:12:46"
+ },
+ "nativeSrc": "319:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "319:32:46"
+ },
+ "variableNames": [
+ {
+ "name": "value_1",
+ "nativeSrc": "308:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "308:7:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "360:17:46",
+ "nodeType": "YulAssignment",
+ "src": "360:17:46",
+ "value": {
+ "name": "value_1",
+ "nativeSrc": "370:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "370:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "360:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "360:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256",
+ "nativeSrc": "14:369:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "82:9:46",
+ "nodeType": "YulTypedName",
+ "src": "82:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "93:7:46",
+ "nodeType": "YulTypedName",
+ "src": "93:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "105:6:46",
+ "nodeType": "YulTypedName",
+ "src": "105:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "113:6:46",
+ "nodeType": "YulTypedName",
+ "src": "113:6:46",
+ "type": ""
+ }
+ ],
+ "src": "14:369:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "429:50:46",
+ "nodeType": "YulBlock",
+ "src": "429:50:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "446:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "446:3:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "465:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "465:5:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "458:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "458:6:46"
+ },
+ "nativeSrc": "458:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "458:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "451:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "451:6:46"
+ },
+ "nativeSrc": "451:21:46",
+ "nodeType": "YulFunctionCall",
+ "src": "451:21:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "439:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "439:6:46"
+ },
+ "nativeSrc": "439:34:46",
+ "nodeType": "YulFunctionCall",
+ "src": "439:34:46"
+ },
+ "nativeSrc": "439:34:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "439:34:46"
+ }
+ ]
+ },
+ "name": "abi_encode_bool",
+ "nativeSrc": "388:91:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "413:5:46",
+ "nodeType": "YulTypedName",
+ "src": "413:5:46",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nativeSrc": "420:3:46",
+ "nodeType": "YulTypedName",
+ "src": "420:3:46",
+ "type": ""
+ }
+ ],
+ "src": "388:91:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "540:977:46",
+ "nodeType": "YulBlock",
+ "src": "540:977:46",
+ "statements": [
+ {
+ "nativeSrc": "550:28:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "550:28:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "566:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "566:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "571:6:46",
+ "nodeType": "YulLiteral",
+ "src": "571:6:46",
+ "type": "",
+ "value": "0x0100"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "562:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "562:3:46"
+ },
+ "nativeSrc": "562:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "562:16:46"
+ },
+ "variables": [
+ {
+ "name": "tail",
+ "nativeSrc": "554:4:46",
+ "nodeType": "YulTypedName",
+ "src": "554:4:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "594:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "594:3:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "605:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "605:5:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "599:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "599:5:46"
+ },
+ "nativeSrc": "599:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "599:12:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "587:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "587:6:46"
+ },
+ "nativeSrc": "587:25:46",
+ "nodeType": "YulFunctionCall",
+ "src": "587:25:46"
+ },
+ "nativeSrc": "587:25:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "587:25:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "632:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "632:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "637:4:46",
+ "nodeType": "YulLiteral",
+ "src": "637:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "628:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "628:3:46"
+ },
+ "nativeSrc": "628:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "628:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "668:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "668:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "675:4:46",
+ "nodeType": "YulLiteral",
+ "src": "675:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "664:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "664:3:46"
+ },
+ "nativeSrc": "664:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "664:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "658:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "658:5:46"
+ },
+ "nativeSrc": "658:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "658:23:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "651:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "651:6:46"
+ },
+ "nativeSrc": "651:31:46",
+ "nodeType": "YulFunctionCall",
+ "src": "651:31:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "644:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "644:6:46"
+ },
+ "nativeSrc": "644:39:46",
+ "nodeType": "YulFunctionCall",
+ "src": "644:39:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "621:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "621:6:46"
+ },
+ "nativeSrc": "621:63:46",
+ "nodeType": "YulFunctionCall",
+ "src": "621:63:46"
+ },
+ "nativeSrc": "621:63:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "621:63:46"
+ },
+ {
+ "nativeSrc": "693:43:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "693:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "723:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "723:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "730:4:46",
+ "nodeType": "YulLiteral",
+ "src": "730:4:46",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "719:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "719:3:46"
+ },
+ "nativeSrc": "719:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "719:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "713:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "713:5:46"
+ },
+ "nativeSrc": "713:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "713:23:46"
+ },
+ "variables": [
+ {
+ "name": "memberValue0",
+ "nativeSrc": "697:12:46",
+ "nodeType": "YulTypedName",
+ "src": "697:12:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "756:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "756:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "761:4:46",
+ "nodeType": "YulLiteral",
+ "src": "761:4:46",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "752:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "752:3:46"
+ },
+ "nativeSrc": "752:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "752:14:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "768:6:46",
+ "nodeType": "YulLiteral",
+ "src": "768:6:46",
+ "type": "",
+ "value": "0x0100"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "745:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "745:6:46"
+ },
+ "nativeSrc": "745:30:46",
+ "nodeType": "YulFunctionCall",
+ "src": "745:30:46"
+ },
+ "nativeSrc": "745:30:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "745:30:46"
+ },
+ {
+ "nativeSrc": "784:17:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "784:17:46",
+ "value": {
+ "name": "tail",
+ "nativeSrc": "797:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "797:4:46"
+ },
+ "variables": [
+ {
+ "name": "pos_1",
+ "nativeSrc": "788:5:46",
+ "nodeType": "YulTypedName",
+ "src": "788:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "810:33:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "810:33:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "memberValue0",
+ "nativeSrc": "830:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "830:12:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "824:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "824:5:46"
+ },
+ "nativeSrc": "824:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "824:19:46"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "814:6:46",
+ "nodeType": "YulTypedName",
+ "src": "814:6:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nativeSrc": "859:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "859:4:46"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "865:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "865:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "852:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "852:6:46"
+ },
+ "nativeSrc": "852:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "852:20:46"
+ },
+ "nativeSrc": "852:20:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "852:20:46"
+ },
+ {
+ "nativeSrc": "881:22:46",
+ "nodeType": "YulAssignment",
+ "src": "881:22:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "894:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "894:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "899:3:46",
+ "nodeType": "YulLiteral",
+ "src": "899:3:46",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "890:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "890:3:46"
+ },
+ "nativeSrc": "890:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "890:13:46"
+ },
+ "variableNames": [
+ {
+ "name": "pos_1",
+ "nativeSrc": "881:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "881:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "912:37:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "912:37:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "memberValue0",
+ "nativeSrc": "930:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "930:12:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "944:4:46",
+ "nodeType": "YulLiteral",
+ "src": "944:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "926:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "926:3:46"
+ },
+ "nativeSrc": "926:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "926:23:46"
+ },
+ "variables": [
+ {
+ "name": "srcPtr",
+ "nativeSrc": "916:6:46",
+ "nodeType": "YulTypedName",
+ "src": "916:6:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "958:10:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "958:10:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "967:1:46",
+ "nodeType": "YulLiteral",
+ "src": "967:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nativeSrc": "962:1:46",
+ "nodeType": "YulTypedName",
+ "src": "962:1:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "1026:130:46",
+ "nodeType": "YulBlock",
+ "src": "1026:130:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos_1",
+ "nativeSrc": "1047:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1047:5:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nativeSrc": "1060:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1060:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1054:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1054:5:46"
+ },
+ "nativeSrc": "1054:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1054:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1040:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1040:6:46"
+ },
+ "nativeSrc": "1040:28:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1040:28:46"
+ },
+ "nativeSrc": "1040:28:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1040:28:46"
+ },
+ {
+ "nativeSrc": "1081:25:46",
+ "nodeType": "YulAssignment",
+ "src": "1081:25:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos_1",
+ "nativeSrc": "1094:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1094:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1101:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1101:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1090:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1090:3:46"
+ },
+ "nativeSrc": "1090:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1090:16:46"
+ },
+ "variableNames": [
+ {
+ "name": "pos_1",
+ "nativeSrc": "1081:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1081:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1119:27:46",
+ "nodeType": "YulAssignment",
+ "src": "1119:27:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nativeSrc": "1133:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1133:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1141:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1141:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1129:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1129:3:46"
+ },
+ "nativeSrc": "1129:17:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1129:17:46"
+ },
+ "variableNames": [
+ {
+ "name": "srcPtr",
+ "nativeSrc": "1119:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1119:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nativeSrc": "988:1:46",
+ "nodeType": "YulIdentifier",
+ "src": "988:1:46"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "991:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "991:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "985:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "985:2:46"
+ },
+ "nativeSrc": "985:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "985:13:46"
+ },
+ "nativeSrc": "977:179:46",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "999:18:46",
+ "nodeType": "YulBlock",
+ "src": "999:18:46",
+ "statements": [
+ {
+ "nativeSrc": "1001:14:46",
+ "nodeType": "YulAssignment",
+ "src": "1001:14:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nativeSrc": "1010:1:46",
+ "nodeType": "YulIdentifier",
+ "src": "1010:1:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1013:1:46",
+ "nodeType": "YulLiteral",
+ "src": "1013:1:46",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1006:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1006:3:46"
+ },
+ "nativeSrc": "1006:9:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1006:9:46"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nativeSrc": "1001:1:46",
+ "nodeType": "YulIdentifier",
+ "src": "1001:1:46"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "981:3:46",
+ "nodeType": "YulBlock",
+ "src": "981:3:46",
+ "statements": []
+ },
+ "src": "977:179:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1176:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1176:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1181:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1181:4:46",
+ "type": "",
+ "value": "0x60"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1172:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1172:3:46"
+ },
+ "nativeSrc": "1172:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1172:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1198:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1198:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1205:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1205:4:46",
+ "type": "",
+ "value": "0x60"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1194:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1194:3:46"
+ },
+ "nativeSrc": "1194:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1194:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1188:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1188:5:46"
+ },
+ "nativeSrc": "1188:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1188:23:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1165:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1165:6:46"
+ },
+ "nativeSrc": "1165:47:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1165:47:46"
+ },
+ "nativeSrc": "1165:47:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1165:47:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1232:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1232:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1237:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1237:4:46",
+ "type": "",
+ "value": "0x80"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1228:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1228:3:46"
+ },
+ "nativeSrc": "1228:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1228:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1254:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1254:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1261:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1261:4:46",
+ "type": "",
+ "value": "0x80"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1250:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1250:3:46"
+ },
+ "nativeSrc": "1250:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1250:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1244:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1244:5:46"
+ },
+ "nativeSrc": "1244:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1244:23:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1221:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1221:6:46"
+ },
+ "nativeSrc": "1221:47:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1221:47:46"
+ },
+ "nativeSrc": "1221:47:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1221:47:46"
+ },
+ {
+ "nativeSrc": "1277:45:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1277:45:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1309:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1309:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1316:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1316:4:46",
+ "type": "",
+ "value": "0xa0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1305:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1305:3:46"
+ },
+ "nativeSrc": "1305:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1305:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1299:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1299:5:46"
+ },
+ "nativeSrc": "1299:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1299:23:46"
+ },
+ "variables": [
+ {
+ "name": "memberValue0_1",
+ "nativeSrc": "1281:14:46",
+ "nodeType": "YulTypedName",
+ "src": "1281:14:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "memberValue0_1",
+ "nativeSrc": "1347:14:46",
+ "nodeType": "YulIdentifier",
+ "src": "1347:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1367:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1367:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1372:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1372:4:46",
+ "type": "",
+ "value": "0xa0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1363:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1363:3:46"
+ },
+ "nativeSrc": "1363:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1363:14:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_bool",
+ "nativeSrc": "1331:15:46",
+ "nodeType": "YulIdentifier",
+ "src": "1331:15:46"
+ },
+ "nativeSrc": "1331:47:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1331:47:46"
+ },
+ "nativeSrc": "1331:47:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1331:47:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1398:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1398:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1403:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1403:4:46",
+ "type": "",
+ "value": "0xc0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1394:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1394:3:46"
+ },
+ "nativeSrc": "1394:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1394:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1420:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1420:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1427:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1427:4:46",
+ "type": "",
+ "value": "0xc0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1416:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1416:3:46"
+ },
+ "nativeSrc": "1416:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1416:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1410:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1410:5:46"
+ },
+ "nativeSrc": "1410:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1410:23:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1387:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1387:6:46"
+ },
+ "nativeSrc": "1387:47:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1387:47:46"
+ },
+ "nativeSrc": "1387:47:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1387:47:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1454:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1454:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1459:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1459:4:46",
+ "type": "",
+ "value": "0xe0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1450:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1450:3:46"
+ },
+ "nativeSrc": "1450:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1450:14:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1476:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1476:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1483:4:46",
+ "nodeType": "YulLiteral",
+ "src": "1483:4:46",
+ "type": "",
+ "value": "0xe0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1472:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1472:3:46"
+ },
+ "nativeSrc": "1472:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1472:16:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1466:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1466:5:46"
+ },
+ "nativeSrc": "1466:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1466:23:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1443:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1443:6:46"
+ },
+ "nativeSrc": "1443:47:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1443:47:46"
+ },
+ "nativeSrc": "1443:47:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1443:47:46"
+ },
+ {
+ "nativeSrc": "1499:12:46",
+ "nodeType": "YulAssignment",
+ "src": "1499:12:46",
+ "value": {
+ "name": "pos_1",
+ "nativeSrc": "1506:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "1506:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "1499:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1499:3:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_struct_Proof",
+ "nativeSrc": "484:1033:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "517:5:46",
+ "nodeType": "YulTypedName",
+ "src": "517:5:46",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nativeSrc": "524:3:46",
+ "nodeType": "YulTypedName",
+ "src": "524:3:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nativeSrc": "532:3:46",
+ "nodeType": "YulTypedName",
+ "src": "532:3:46",
+ "type": ""
+ }
+ ],
+ "src": "484:1033:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "1677:105:46",
+ "nodeType": "YulBlock",
+ "src": "1677:105:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "1694:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "1694:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1705:2:46",
+ "nodeType": "YulLiteral",
+ "src": "1705:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1687:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1687:6:46"
+ },
+ "nativeSrc": "1687:21:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1687:21:46"
+ },
+ "nativeSrc": "1687:21:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1687:21:46"
+ },
+ {
+ "nativeSrc": "1717:59:46",
+ "nodeType": "YulAssignment",
+ "src": "1717:59:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nativeSrc": "1749:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1749:6:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "1761:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "1761:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1772:2:46",
+ "nodeType": "YulLiteral",
+ "src": "1772:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "1757:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1757:3:46"
+ },
+ "nativeSrc": "1757:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1757:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_Proof",
+ "nativeSrc": "1725:23:46",
+ "nodeType": "YulIdentifier",
+ "src": "1725:23:46"
+ },
+ "nativeSrc": "1725:51:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1725:51:46"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nativeSrc": "1717:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "1717:4:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed",
+ "nativeSrc": "1522:260:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "1646:9:46",
+ "nodeType": "YulTypedName",
+ "src": "1646:9:46",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "1657:6:46",
+ "nodeType": "YulTypedName",
+ "src": "1657:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nativeSrc": "1668:4:46",
+ "nodeType": "YulTypedName",
+ "src": "1668:4:46",
+ "type": ""
+ }
+ ],
+ "src": "1522:260:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "1914:362:46",
+ "nodeType": "YulBlock",
+ "src": "1914:362:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "1960:16:46",
+ "nodeType": "YulBlock",
+ "src": "1960:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1969:1:46",
+ "nodeType": "YulLiteral",
+ "src": "1969:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1972:1:46",
+ "nodeType": "YulLiteral",
+ "src": "1972:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "1962:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "1962:6:46"
+ },
+ "nativeSrc": "1962:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1962:12:46"
+ },
+ "nativeSrc": "1962:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "1962:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "1935:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "1935:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "1944:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "1944:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "1931:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1931:3:46"
+ },
+ "nativeSrc": "1931:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1931:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1956:2:46",
+ "nodeType": "YulLiteral",
+ "src": "1956:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "1927:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "1927:3:46"
+ },
+ "nativeSrc": "1927:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "1927:32:46"
+ },
+ "nativeSrc": "1924:52:46",
+ "nodeType": "YulIf",
+ "src": "1924:52:46"
+ },
+ {
+ "nativeSrc": "1985:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1985:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "1998:1:46",
+ "nodeType": "YulLiteral",
+ "src": "1998:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "1989:5:46",
+ "nodeType": "YulTypedName",
+ "src": "1989:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2008:32:46",
+ "nodeType": "YulAssignment",
+ "src": "2008:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2030:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2030:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "2017:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "2017:12:46"
+ },
+ "nativeSrc": "2017:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2017:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "2008:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2008:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2049:15:46",
+ "nodeType": "YulAssignment",
+ "src": "2049:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "2059:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2059:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "2049:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2049:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2073:16:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "2073:16:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "2088:1:46",
+ "nodeType": "YulLiteral",
+ "src": "2088:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value_1",
+ "nativeSrc": "2077:7:46",
+ "nodeType": "YulTypedName",
+ "src": "2077:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2098:43:46",
+ "nodeType": "YulAssignment",
+ "src": "2098:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2126:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2126:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2137:2:46",
+ "nodeType": "YulLiteral",
+ "src": "2137:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2122:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2122:3:46"
+ },
+ "nativeSrc": "2122:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2122:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "2109:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:46"
+ },
+ "nativeSrc": "2109:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2109:32:46"
+ },
+ "variableNames": [
+ {
+ "name": "value_1",
+ "nativeSrc": "2098:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "2098:7:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2150:17:46",
+ "nodeType": "YulAssignment",
+ "src": "2150:17:46",
+ "value": {
+ "name": "value_1",
+ "nativeSrc": "2160:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "2160:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "2150:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2150:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2176:16:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "2176:16:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "2191:1:46",
+ "nodeType": "YulLiteral",
+ "src": "2191:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value_2",
+ "nativeSrc": "2180:7:46",
+ "nodeType": "YulTypedName",
+ "src": "2180:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2201:43:46",
+ "nodeType": "YulAssignment",
+ "src": "2201:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2229:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2229:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2240:2:46",
+ "nodeType": "YulLiteral",
+ "src": "2240:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2225:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2225:3:46"
+ },
+ "nativeSrc": "2225:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2225:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "2212:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "2212:12:46"
+ },
+ "nativeSrc": "2212:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2212:32:46"
+ },
+ "variableNames": [
+ {
+ "name": "value_2",
+ "nativeSrc": "2201:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "2201:7:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2253:17:46",
+ "nodeType": "YulAssignment",
+ "src": "2253:17:46",
+ "value": {
+ "name": "value_2",
+ "nativeSrc": "2263:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "2263:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nativeSrc": "2253:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2253:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256t_uint256",
+ "nativeSrc": "1787:489:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "1864:9:46",
+ "nodeType": "YulTypedName",
+ "src": "1864:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "1875:7:46",
+ "nodeType": "YulTypedName",
+ "src": "1875:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "1887:6:46",
+ "nodeType": "YulTypedName",
+ "src": "1887:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "1895:6:46",
+ "nodeType": "YulTypedName",
+ "src": "1895:6:46",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "1903:6:46",
+ "nodeType": "YulTypedName",
+ "src": "1903:6:46",
+ "type": ""
+ }
+ ],
+ "src": "1787:489:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "2436:209:46",
+ "nodeType": "YulBlock",
+ "src": "2436:209:46",
+ "statements": [
+ {
+ "nativeSrc": "2446:26:46",
+ "nodeType": "YulAssignment",
+ "src": "2446:26:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2458:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2458:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2469:2:46",
+ "nodeType": "YulLiteral",
+ "src": "2469:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2454:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2454:3:46"
+ },
+ "nativeSrc": "2454:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2454:18:46"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nativeSrc": "2446:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "2446:4:46"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2488:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2488:9:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value0",
+ "nativeSrc": "2505:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2505:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2499:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2499:5:46"
+ },
+ "nativeSrc": "2499:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2499:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2481:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2481:6:46"
+ },
+ "nativeSrc": "2481:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2481:32:46"
+ },
+ "nativeSrc": "2481:32:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "2481:32:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2533:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2533:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2544:4:46",
+ "nodeType": "YulLiteral",
+ "src": "2544:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2529:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2529:3:46"
+ },
+ "nativeSrc": "2529:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2529:20:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value0",
+ "nativeSrc": "2561:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2561:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2569:4:46",
+ "nodeType": "YulLiteral",
+ "src": "2569:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2557:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2557:3:46"
+ },
+ "nativeSrc": "2557:17:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2557:17:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2551:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2551:5:46"
+ },
+ "nativeSrc": "2551:24:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2551:24:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2522:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2522:6:46"
+ },
+ "nativeSrc": "2522:54:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2522:54:46"
+ },
+ "nativeSrc": "2522:54:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "2522:54:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2596:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2596:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2607:4:46",
+ "nodeType": "YulLiteral",
+ "src": "2607:4:46",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2592:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2592:3:46"
+ },
+ "nativeSrc": "2592:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2592:20:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value0",
+ "nativeSrc": "2624:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2624:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2632:4:46",
+ "nodeType": "YulLiteral",
+ "src": "2632:4:46",
+ "type": "",
+ "value": "0x40"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2620:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2620:3:46"
+ },
+ "nativeSrc": "2620:17:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2620:17:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "2614:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2614:5:46"
+ },
+ "nativeSrc": "2614:24:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2614:24:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2585:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2585:6:46"
+ },
+ "nativeSrc": "2585:54:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2585:54:46"
+ },
+ "nativeSrc": "2585:54:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "2585:54:46"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_library_reversed",
+ "nativeSrc": "2281:364:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2405:9:46",
+ "nodeType": "YulTypedName",
+ "src": "2405:9:46",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "2416:6:46",
+ "nodeType": "YulTypedName",
+ "src": "2416:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nativeSrc": "2427:4:46",
+ "nodeType": "YulTypedName",
+ "src": "2427:4:46",
+ "type": ""
+ }
+ ],
+ "src": "2281:364:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "2698:123:46",
+ "nodeType": "YulBlock",
+ "src": "2698:123:46",
+ "statements": [
+ {
+ "nativeSrc": "2708:29:46",
+ "nodeType": "YulAssignment",
+ "src": "2708:29:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "2730:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2730:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "2717:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "2717:12:46"
+ },
+ "nativeSrc": "2717:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2717:20:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "2708:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2708:5:46"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "2799:16:46",
+ "nodeType": "YulBlock",
+ "src": "2799:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2808:1:46",
+ "nodeType": "YulLiteral",
+ "src": "2808:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2811:1:46",
+ "nodeType": "YulLiteral",
+ "src": "2811:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "2801:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2801:6:46"
+ },
+ "nativeSrc": "2801:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2801:12:46"
+ },
+ "nativeSrc": "2801:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "2801:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2759:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2759:5:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2770:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "2770:5:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2777:18:46",
+ "nodeType": "YulLiteral",
+ "src": "2777:18:46",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "2766:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2766:3:46"
+ },
+ "nativeSrc": "2766:30:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2766:30:46"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "2756:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "2756:2:46"
+ },
+ "nativeSrc": "2756:41:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2756:41:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "2749:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "2749:6:46"
+ },
+ "nativeSrc": "2749:49:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2749:49:46"
+ },
+ "nativeSrc": "2746:69:46",
+ "nodeType": "YulIf",
+ "src": "2746:69:46"
+ }
+ ]
+ },
+ "name": "abi_decode_uint64",
+ "nativeSrc": "2650:171:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nativeSrc": "2677:6:46",
+ "nodeType": "YulTypedName",
+ "src": "2677:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nativeSrc": "2688:5:46",
+ "nodeType": "YulTypedName",
+ "src": "2688:5:46",
+ "type": ""
+ }
+ ],
+ "src": "2650:171:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "2952:315:46",
+ "nodeType": "YulBlock",
+ "src": "2952:315:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "2998:16:46",
+ "nodeType": "YulBlock",
+ "src": "2998:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3007:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3007:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3010:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3010:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "3000:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3000:6:46"
+ },
+ "nativeSrc": "3000:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3000:12:46"
+ },
+ "nativeSrc": "3000:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "3000:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "2973:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "2973:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "2982:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "2982:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "2969:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2969:3:46"
+ },
+ "nativeSrc": "2969:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2969:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2994:2:46",
+ "nodeType": "YulLiteral",
+ "src": "2994:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "2965:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "2965:3:46"
+ },
+ "nativeSrc": "2965:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "2965:32:46"
+ },
+ "nativeSrc": "2962:52:46",
+ "nodeType": "YulIf",
+ "src": "2962:52:46"
+ },
+ {
+ "nativeSrc": "3023:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3023:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "3036:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3036:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "3027:5:46",
+ "nodeType": "YulTypedName",
+ "src": "3027:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3046:32:46",
+ "nodeType": "YulAssignment",
+ "src": "3046:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3068:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3068:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "3055:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "3055:12:46"
+ },
+ "nativeSrc": "3055:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3055:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "3046:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3046:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3087:15:46",
+ "nodeType": "YulAssignment",
+ "src": "3087:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "3097:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3097:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "3087:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3087:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3111:47:46",
+ "nodeType": "YulAssignment",
+ "src": "3111:47:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3143:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3143:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3154:2:46",
+ "nodeType": "YulLiteral",
+ "src": "3154:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3139:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3139:3:46"
+ },
+ "nativeSrc": "3139:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3139:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_uint64",
+ "nativeSrc": "3121:17:46",
+ "nodeType": "YulIdentifier",
+ "src": "3121:17:46"
+ },
+ "nativeSrc": "3121:37:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3121:37:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "3111:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3111:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3167:16:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3167:16:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "3182:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3182:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value_1",
+ "nativeSrc": "3171:7:46",
+ "nodeType": "YulTypedName",
+ "src": "3171:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3192:43:46",
+ "nodeType": "YulAssignment",
+ "src": "3192:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3220:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3220:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3231:2:46",
+ "nodeType": "YulLiteral",
+ "src": "3231:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3216:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3216:3:46"
+ },
+ "nativeSrc": "3216:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3216:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "3203:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "3203:12:46"
+ },
+ "nativeSrc": "3203:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3203:32:46"
+ },
+ "variableNames": [
+ {
+ "name": "value_1",
+ "nativeSrc": "3192:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "3192:7:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3244:17:46",
+ "nodeType": "YulAssignment",
+ "src": "3244:17:46",
+ "value": {
+ "name": "value_1",
+ "nativeSrc": "3254:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "3254:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nativeSrc": "3244:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3244:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64t_uint256",
+ "nativeSrc": "2826:441:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "2902:9:46",
+ "nodeType": "YulTypedName",
+ "src": "2902:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "2913:7:46",
+ "nodeType": "YulTypedName",
+ "src": "2913:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "2925:6:46",
+ "nodeType": "YulTypedName",
+ "src": "2925:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "2933:6:46",
+ "nodeType": "YulTypedName",
+ "src": "2933:6:46",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "2941:6:46",
+ "nodeType": "YulTypedName",
+ "src": "2941:6:46",
+ "type": ""
+ }
+ ],
+ "src": "2826:441:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "3365:156:46",
+ "nodeType": "YulBlock",
+ "src": "3365:156:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "3411:16:46",
+ "nodeType": "YulBlock",
+ "src": "3411:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3420:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3420:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3423:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3423:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "3413:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3413:6:46"
+ },
+ "nativeSrc": "3413:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3413:12:46"
+ },
+ "nativeSrc": "3413:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "3413:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "3386:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "3386:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "3395:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3395:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "3382:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3382:3:46"
+ },
+ "nativeSrc": "3382:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3382:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3407:2:46",
+ "nodeType": "YulLiteral",
+ "src": "3407:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "3378:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3378:3:46"
+ },
+ "nativeSrc": "3378:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3378:32:46"
+ },
+ "nativeSrc": "3375:52:46",
+ "nodeType": "YulIf",
+ "src": "3375:52:46"
+ },
+ {
+ "nativeSrc": "3436:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3436:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "3449:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3449:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "3440:5:46",
+ "nodeType": "YulTypedName",
+ "src": "3440:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3459:32:46",
+ "nodeType": "YulAssignment",
+ "src": "3459:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3481:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3481:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "3468:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "3468:12:46"
+ },
+ "nativeSrc": "3468:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3468:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "3459:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3459:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3500:15:46",
+ "nodeType": "YulAssignment",
+ "src": "3500:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "3510:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3510:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "3500:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3500:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptr",
+ "nativeSrc": "3272:249:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3331:9:46",
+ "nodeType": "YulTypedName",
+ "src": "3331:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "3342:7:46",
+ "nodeType": "YulTypedName",
+ "src": "3342:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "3354:6:46",
+ "nodeType": "YulTypedName",
+ "src": "3354:6:46",
+ "type": ""
+ }
+ ],
+ "src": "3272:249:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "3635:76:46",
+ "nodeType": "YulBlock",
+ "src": "3635:76:46",
+ "statements": [
+ {
+ "nativeSrc": "3645:26:46",
+ "nodeType": "YulAssignment",
+ "src": "3645:26:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3657:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3657:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3668:2:46",
+ "nodeType": "YulLiteral",
+ "src": "3668:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3653:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3653:3:46"
+ },
+ "nativeSrc": "3653:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3653:18:46"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nativeSrc": "3645:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "3645:4:46"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3687:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "3687:9:46"
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "3698:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3698:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "3680:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3680:6:46"
+ },
+ "nativeSrc": "3680:25:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3680:25:46"
+ },
+ "nativeSrc": "3680:25:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "3680:25:46"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed",
+ "nativeSrc": "3526:185:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3604:9:46",
+ "nodeType": "YulTypedName",
+ "src": "3604:9:46",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "3615:6:46",
+ "nodeType": "YulTypedName",
+ "src": "3615:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nativeSrc": "3626:4:46",
+ "nodeType": "YulTypedName",
+ "src": "3626:4:46",
+ "type": ""
+ }
+ ],
+ "src": "3526:185:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "3765:124:46",
+ "nodeType": "YulBlock",
+ "src": "3765:124:46",
+ "statements": [
+ {
+ "nativeSrc": "3775:29:46",
+ "nodeType": "YulAssignment",
+ "src": "3775:29:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "3797:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3797:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "3784:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "3784:12:46"
+ },
+ "nativeSrc": "3784:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3784:20:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "3775:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3775:5:46"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "3867:16:46",
+ "nodeType": "YulBlock",
+ "src": "3867:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3876:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3876:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3879:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3879:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "3869:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3869:6:46"
+ },
+ "nativeSrc": "3869:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3869:12:46"
+ },
+ "nativeSrc": "3869:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "3869:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "3826:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3826:5:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "3837:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "3837:5:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "3852:3:46",
+ "nodeType": "YulLiteral",
+ "src": "3852:3:46",
+ "type": "",
+ "value": "160"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3857:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3857:1:46",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "3848:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3848:3:46"
+ },
+ "nativeSrc": "3848:11:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3848:11:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3861:1:46",
+ "nodeType": "YulLiteral",
+ "src": "3861:1:46",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "3844:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3844:3:46"
+ },
+ "nativeSrc": "3844:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3844:19:46"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "3833:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "3833:3:46"
+ },
+ "nativeSrc": "3833:31:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3833:31:46"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "3823:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "3823:2:46"
+ },
+ "nativeSrc": "3823:42:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3823:42:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "3816:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "3816:6:46"
+ },
+ "nativeSrc": "3816:50:46",
+ "nodeType": "YulFunctionCall",
+ "src": "3816:50:46"
+ },
+ "nativeSrc": "3813:70:46",
+ "nodeType": "YulIf",
+ "src": "3813:70:46"
+ }
+ ]
+ },
+ "name": "abi_decode_address",
+ "nativeSrc": "3716:173:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nativeSrc": "3744:6:46",
+ "nodeType": "YulTypedName",
+ "src": "3744:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nativeSrc": "3755:5:46",
+ "nodeType": "YulTypedName",
+ "src": "3755:5:46",
+ "type": ""
+ }
+ ],
+ "src": "3716:173:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "4054:536:46",
+ "nodeType": "YulBlock",
+ "src": "4054:536:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4101:16:46",
+ "nodeType": "YulBlock",
+ "src": "4101:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4110:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4110:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4113:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4113:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "4103:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4103:6:46"
+ },
+ "nativeSrc": "4103:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4103:12:46"
+ },
+ "nativeSrc": "4103:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "4103:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "4075:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4075:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "4084:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4084:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "4071:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4071:3:46"
+ },
+ "nativeSrc": "4071:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4071:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4096:3:46",
+ "nodeType": "YulLiteral",
+ "src": "4096:3:46",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "4067:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4067:3:46"
+ },
+ "nativeSrc": "4067:33:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4067:33:46"
+ },
+ "nativeSrc": "4064:53:46",
+ "nodeType": "YulIf",
+ "src": "4064:53:46"
+ },
+ {
+ "nativeSrc": "4126:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4126:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "4139:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4139:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "4130:5:46",
+ "nodeType": "YulTypedName",
+ "src": "4130:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4149:32:46",
+ "nodeType": "YulAssignment",
+ "src": "4149:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4171:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4171:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "4158:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "4158:12:46"
+ },
+ "nativeSrc": "4158:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4158:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "4149:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "4149:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4190:15:46",
+ "nodeType": "YulAssignment",
+ "src": "4190:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "4200:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "4200:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "4190:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4190:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4214:48:46",
+ "nodeType": "YulAssignment",
+ "src": "4214:48:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4247:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4247:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4258:2:46",
+ "nodeType": "YulLiteral",
+ "src": "4258:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4243:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4243:3:46"
+ },
+ "nativeSrc": "4243:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4243:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_address",
+ "nativeSrc": "4224:18:46",
+ "nodeType": "YulIdentifier",
+ "src": "4224:18:46"
+ },
+ "nativeSrc": "4224:38:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4224:38:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "4214:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4214:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4271:48:46",
+ "nodeType": "YulAssignment",
+ "src": "4271:48:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4304:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4304:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4315:2:46",
+ "nodeType": "YulLiteral",
+ "src": "4315:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4300:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4300:3:46"
+ },
+ "nativeSrc": "4300:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4300:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_address",
+ "nativeSrc": "4281:18:46",
+ "nodeType": "YulIdentifier",
+ "src": "4281:18:46"
+ },
+ "nativeSrc": "4281:38:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4281:38:46"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nativeSrc": "4271:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4271:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4328:16:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4328:16:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "4343:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4343:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value_1",
+ "nativeSrc": "4332:7:46",
+ "nodeType": "YulTypedName",
+ "src": "4332:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4353:43:46",
+ "nodeType": "YulAssignment",
+ "src": "4353:43:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4381:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4381:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4392:2:46",
+ "nodeType": "YulLiteral",
+ "src": "4392:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4377:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4377:3:46"
+ },
+ "nativeSrc": "4377:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4377:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "4364:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "4364:12:46"
+ },
+ "nativeSrc": "4364:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4364:32:46"
+ },
+ "variableNames": [
+ {
+ "name": "value_1",
+ "nativeSrc": "4353:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4353:7:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4405:17:46",
+ "nodeType": "YulAssignment",
+ "src": "4405:17:46",
+ "value": {
+ "name": "value_1",
+ "nativeSrc": "4415:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4415:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value3",
+ "nativeSrc": "4405:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4431:48:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4431:48:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4463:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4463:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4474:3:46",
+ "nodeType": "YulLiteral",
+ "src": "4474:3:46",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4459:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4459:3:46"
+ },
+ "nativeSrc": "4459:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4459:19:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "4446:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "4446:12:46"
+ },
+ "nativeSrc": "4446:33:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4446:33:46"
+ },
+ "variables": [
+ {
+ "name": "value_2",
+ "nativeSrc": "4435:7:46",
+ "nodeType": "YulTypedName",
+ "src": "4435:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "4542:16:46",
+ "nodeType": "YulBlock",
+ "src": "4542:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4551:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4551:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4554:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4554:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "4544:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4544:6:46"
+ },
+ "nativeSrc": "4544:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4544:12:46"
+ },
+ "nativeSrc": "4544:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "4544:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value_2",
+ "nativeSrc": "4501:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4501:7:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value_2",
+ "nativeSrc": "4514:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4514:7:46"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4527:3:46",
+ "nodeType": "YulLiteral",
+ "src": "4527:3:46",
+ "type": "",
+ "value": "240"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4532:5:46",
+ "nodeType": "YulLiteral",
+ "src": "4532:5:46",
+ "type": "",
+ "value": "65535"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "4523:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4523:3:46"
+ },
+ "nativeSrc": "4523:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4523:15:46"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "4510:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4510:3:46"
+ },
+ "nativeSrc": "4510:29:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4510:29:46"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "4498:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "4498:2:46"
+ },
+ "nativeSrc": "4498:42:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4498:42:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "4491:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4491:6:46"
+ },
+ "nativeSrc": "4491:50:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4491:50:46"
+ },
+ "nativeSrc": "4488:70:46",
+ "nodeType": "YulIf",
+ "src": "4488:70:46"
+ },
+ {
+ "nativeSrc": "4567:17:46",
+ "nodeType": "YulAssignment",
+ "src": "4567:17:46",
+ "value": {
+ "name": "value_2",
+ "nativeSrc": "4577:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4577:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "value4",
+ "nativeSrc": "4567:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4567:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_addresst_addresst_uint256t_bytes2",
+ "nativeSrc": "3894:696:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "3988:9:46",
+ "nodeType": "YulTypedName",
+ "src": "3988:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "3999:7:46",
+ "nodeType": "YulTypedName",
+ "src": "3999:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "4011:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4011:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "4019:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4019:6:46",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "4027:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4027:6:46",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nativeSrc": "4035:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4035:6:46",
+ "type": ""
+ },
+ {
+ "name": "value4",
+ "nativeSrc": "4043:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4043:6:46",
+ "type": ""
+ }
+ ],
+ "src": "3894:696:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "4704:212:46",
+ "nodeType": "YulBlock",
+ "src": "4704:212:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "4750:16:46",
+ "nodeType": "YulBlock",
+ "src": "4750:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4759:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4759:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4762:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4762:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "4752:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4752:6:46"
+ },
+ "nativeSrc": "4752:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4752:12:46"
+ },
+ "nativeSrc": "4752:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "4752:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "4725:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "4725:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "4734:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4734:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "4721:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4721:3:46"
+ },
+ "nativeSrc": "4721:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4721:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4746:2:46",
+ "nodeType": "YulLiteral",
+ "src": "4746:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "4717:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4717:3:46"
+ },
+ "nativeSrc": "4717:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4717:32:46"
+ },
+ "nativeSrc": "4714:52:46",
+ "nodeType": "YulIf",
+ "src": "4714:52:46"
+ },
+ {
+ "nativeSrc": "4775:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4775:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "4788:1:46",
+ "nodeType": "YulLiteral",
+ "src": "4788:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "4779:5:46",
+ "nodeType": "YulTypedName",
+ "src": "4779:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4798:32:46",
+ "nodeType": "YulAssignment",
+ "src": "4798:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4820:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4820:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "4807:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "4807:12:46"
+ },
+ "nativeSrc": "4807:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4807:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "4798:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "4798:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4839:15:46",
+ "nodeType": "YulAssignment",
+ "src": "4839:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "4849:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "4849:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "4839:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4839:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4863:47:46",
+ "nodeType": "YulAssignment",
+ "src": "4863:47:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4895:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "4895:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4906:2:46",
+ "nodeType": "YulLiteral",
+ "src": "4906:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4891:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:46"
+ },
+ "nativeSrc": "4891:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4891:18:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_uint64",
+ "nativeSrc": "4873:17:46",
+ "nodeType": "YulIdentifier",
+ "src": "4873:17:46"
+ },
+ "nativeSrc": "4873:37:46",
+ "nodeType": "YulFunctionCall",
+ "src": "4873:37:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "4863:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "4863:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64",
+ "nativeSrc": "4595:321:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "4662:9:46",
+ "nodeType": "YulTypedName",
+ "src": "4662:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "4673:7:46",
+ "nodeType": "YulTypedName",
+ "src": "4673:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "4685:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4685:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "4693:6:46",
+ "nodeType": "YulTypedName",
+ "src": "4693:6:46",
+ "type": ""
+ }
+ ],
+ "src": "4595:321:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "5158:335:46",
+ "nodeType": "YulBlock",
+ "src": "5158:335:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5175:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5175:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5186:3:46",
+ "nodeType": "YulLiteral",
+ "src": "5186:3:46",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5168:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5168:6:46"
+ },
+ "nativeSrc": "5168:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5168:22:46"
+ },
+ "nativeSrc": "5168:22:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5168:22:46"
+ },
+ {
+ "nativeSrc": "5199:60:46",
+ "nodeType": "YulAssignment",
+ "src": "5199:60:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nativeSrc": "5231:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5231:6:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5243:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5243:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5254:3:46",
+ "nodeType": "YulLiteral",
+ "src": "5254:3:46",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5239:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5239:3:46"
+ },
+ "nativeSrc": "5239:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5239:19:46"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_Proof",
+ "nativeSrc": "5207:23:46",
+ "nodeType": "YulIdentifier",
+ "src": "5207:23:46"
+ },
+ "nativeSrc": "5207:52:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5207:52:46"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nativeSrc": "5199:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "5199:4:46"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5279:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5279:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5290:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5290:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5275:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5275:3:46"
+ },
+ "nativeSrc": "5275:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5275:18:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value1",
+ "nativeSrc": "5301:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5301:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5295:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5295:5:46"
+ },
+ "nativeSrc": "5295:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5295:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5268:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5268:6:46"
+ },
+ "nativeSrc": "5268:41:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5268:41:46"
+ },
+ "nativeSrc": "5268:41:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5268:41:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5329:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5329:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5340:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5340:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5325:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5325:3:46"
+ },
+ "nativeSrc": "5325:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5325:18:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value1",
+ "nativeSrc": "5355:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5355:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5363:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5363:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5351:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5351:3:46"
+ },
+ "nativeSrc": "5351:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5351:15:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5345:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5345:5:46"
+ },
+ "nativeSrc": "5345:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5345:22:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5318:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5318:6:46"
+ },
+ "nativeSrc": "5318:50:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5318:50:46"
+ },
+ "nativeSrc": "5318:50:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5318:50:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5388:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5388:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5399:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5399:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5384:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5384:3:46"
+ },
+ "nativeSrc": "5384:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5384:18:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value1",
+ "nativeSrc": "5414:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5414:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5422:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5422:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5410:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5410:3:46"
+ },
+ "nativeSrc": "5410:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5410:15:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5404:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5404:5:46"
+ },
+ "nativeSrc": "5404:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5404:22:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5377:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5377:6:46"
+ },
+ "nativeSrc": "5377:50:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5377:50:46"
+ },
+ "nativeSrc": "5377:50:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5377:50:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5447:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5447:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5458:3:46",
+ "nodeType": "YulLiteral",
+ "src": "5458:3:46",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5443:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5443:3:46"
+ },
+ "nativeSrc": "5443:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5443:19:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value1",
+ "nativeSrc": "5474:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5474:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5482:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5482:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5470:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5470:3:46"
+ },
+ "nativeSrc": "5470:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5470:15:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5464:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5464:5:46"
+ },
+ "nativeSrc": "5464:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5464:22:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "5436:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5436:6:46"
+ },
+ "nativeSrc": "5436:51:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5436:51:46"
+ },
+ "nativeSrc": "5436:51:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5436:51:46"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_library_reversed",
+ "nativeSrc": "4921:572:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5119:9:46",
+ "nodeType": "YulTypedName",
+ "src": "5119:9:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "5130:6:46",
+ "nodeType": "YulTypedName",
+ "src": "5130:6:46",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "5138:6:46",
+ "nodeType": "YulTypedName",
+ "src": "5138:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nativeSrc": "5149:4:46",
+ "nodeType": "YulTypedName",
+ "src": "5149:4:46",
+ "type": ""
+ }
+ ],
+ "src": "4921:572:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "5633:255:46",
+ "nodeType": "YulBlock",
+ "src": "5633:255:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "5680:16:46",
+ "nodeType": "YulBlock",
+ "src": "5680:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5689:1:46",
+ "nodeType": "YulLiteral",
+ "src": "5689:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5692:1:46",
+ "nodeType": "YulLiteral",
+ "src": "5692:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "5682:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5682:6:46"
+ },
+ "nativeSrc": "5682:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5682:12:46"
+ },
+ "nativeSrc": "5682:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5682:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "5654:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "5654:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "5663:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5663:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "5650:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5650:3:46"
+ },
+ "nativeSrc": "5650:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5650:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5675:3:46",
+ "nodeType": "YulLiteral",
+ "src": "5675:3:46",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "5646:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5646:3:46"
+ },
+ "nativeSrc": "5646:33:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5646:33:46"
+ },
+ "nativeSrc": "5643:53:46",
+ "nodeType": "YulIf",
+ "src": "5643:53:46"
+ },
+ {
+ "nativeSrc": "5705:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5705:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "5718:1:46",
+ "nodeType": "YulLiteral",
+ "src": "5718:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "5709:5:46",
+ "nodeType": "YulTypedName",
+ "src": "5709:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5728:32:46",
+ "nodeType": "YulAssignment",
+ "src": "5728:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5750:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5750:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nativeSrc": "5737:12:46",
+ "nodeType": "YulIdentifier",
+ "src": "5737:12:46"
+ },
+ "nativeSrc": "5737:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5737:23:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "5728:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5728:5:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5769:15:46",
+ "nodeType": "YulAssignment",
+ "src": "5769:15:46",
+ "value": {
+ "name": "value",
+ "nativeSrc": "5779:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "5779:5:46"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nativeSrc": "5769:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5769:6:46"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5829:16:46",
+ "nodeType": "YulBlock",
+ "src": "5829:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5838:1:46",
+ "nodeType": "YulLiteral",
+ "src": "5838:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5841:1:46",
+ "nodeType": "YulLiteral",
+ "src": "5841:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "5831:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5831:6:46"
+ },
+ "nativeSrc": "5831:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5831:12:46"
+ },
+ "nativeSrc": "5831:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "5831:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5803:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5803:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5814:3:46",
+ "nodeType": "YulLiteral",
+ "src": "5814:3:46",
+ "type": "",
+ "value": "288"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5799:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5799:3:46"
+ },
+ "nativeSrc": "5799:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5799:19:46"
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "5820:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "5820:7:46"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "5796:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "5796:2:46"
+ },
+ "nativeSrc": "5796:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5796:32:46"
+ },
+ "nativeSrc": "5793:52:46",
+ "nodeType": "YulIf",
+ "src": "5793:52:46"
+ },
+ {
+ "nativeSrc": "5854:28:46",
+ "nodeType": "YulAssignment",
+ "src": "5854:28:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5868:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "5868:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5879:2:46",
+ "nodeType": "YulLiteral",
+ "src": "5879:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5864:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "5864:3:46"
+ },
+ "nativeSrc": "5864:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "5864:18:46"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nativeSrc": "5854:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "5854:6:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_array$_t_uint256_$8_calldata_ptr",
+ "nativeSrc": "5498:390:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "5591:9:46",
+ "nodeType": "YulTypedName",
+ "src": "5591:9:46",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nativeSrc": "5602:7:46",
+ "nodeType": "YulTypedName",
+ "src": "5602:7:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nativeSrc": "5614:6:46",
+ "nodeType": "YulTypedName",
+ "src": "5614:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "5622:6:46",
+ "nodeType": "YulTypedName",
+ "src": "5622:6:46",
+ "type": ""
+ }
+ ],
+ "src": "5498:390:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "6081:162:46",
+ "nodeType": "YulBlock",
+ "src": "6081:162:46",
+ "statements": [
+ {
+ "nativeSrc": "6091:26:46",
+ "nodeType": "YulAssignment",
+ "src": "6091:26:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "6103:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "6103:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6114:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6114:2:46",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6099:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6099:3:46"
+ },
+ "nativeSrc": "6099:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6099:18:46"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nativeSrc": "6091:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "6091:4:46"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "6133:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "6133:9:46"
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "6144:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6144:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6126:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6126:6:46"
+ },
+ "nativeSrc": "6126:25:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6126:25:46"
+ },
+ "nativeSrc": "6126:25:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6126:25:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "6171:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "6171:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6182:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6182:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6167:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6167:3:46"
+ },
+ "nativeSrc": "6167:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6167:18:46"
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "6187:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6187:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6160:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6160:6:46"
+ },
+ "nativeSrc": "6160:34:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6160:34:46"
+ },
+ "nativeSrc": "6160:34:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6160:34:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "6214:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "6214:9:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6225:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6225:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6210:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6210:3:46"
+ },
+ "nativeSrc": "6210:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6210:18:46"
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "6230:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6230:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6203:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6203:6:46"
+ },
+ "nativeSrc": "6203:34:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6203:34:46"
+ },
+ "nativeSrc": "6203:34:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6203:34:46"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed",
+ "nativeSrc": "5893:350:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nativeSrc": "6034:9:46",
+ "nodeType": "YulTypedName",
+ "src": "6034:9:46",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nativeSrc": "6045:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6045:6:46",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nativeSrc": "6053:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6053:6:46",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nativeSrc": "6061:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6061:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nativeSrc": "6072:4:46",
+ "nodeType": "YulTypedName",
+ "src": "6072:4:46",
+ "type": ""
+ }
+ ],
+ "src": "5893:350:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "6280:95:46",
+ "nodeType": "YulBlock",
+ "src": "6280:95:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6297:1:46",
+ "nodeType": "YulLiteral",
+ "src": "6297:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6304:3:46",
+ "nodeType": "YulLiteral",
+ "src": "6304:3:46",
+ "type": "",
+ "value": "224"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6309:10:46",
+ "nodeType": "YulLiteral",
+ "src": "6309:10:46",
+ "type": "",
+ "value": "0x4e487b71"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "6300:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6300:3:46"
+ },
+ "nativeSrc": "6300:20:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6300:20:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6290:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6290:6:46"
+ },
+ "nativeSrc": "6290:31:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6290:31:46"
+ },
+ "nativeSrc": "6290:31:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6290:31:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6337:1:46",
+ "nodeType": "YulLiteral",
+ "src": "6337:1:46",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6340:4:46",
+ "nodeType": "YulLiteral",
+ "src": "6340:4:46",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6330:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6330:6:46"
+ },
+ "nativeSrc": "6330:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6330:15:46"
+ },
+ "nativeSrc": "6330:15:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6330:15:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6361:1:46",
+ "nodeType": "YulLiteral",
+ "src": "6361:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6364:4:46",
+ "nodeType": "YulLiteral",
+ "src": "6364:4:46",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "6354:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6354:6:46"
+ },
+ "nativeSrc": "6354:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6354:15:46"
+ },
+ "nativeSrc": "6354:15:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6354:15:46"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nativeSrc": "6248:127:46",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6248:127:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "6426:209:46",
+ "nodeType": "YulBlock",
+ "src": "6426:209:46",
+ "statements": [
+ {
+ "nativeSrc": "6436:19:46",
+ "nodeType": "YulAssignment",
+ "src": "6436:19:46",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6452:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6452:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "6446:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "6446:5:46"
+ },
+ "nativeSrc": "6446:9:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6446:9:46"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6436:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6436:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6464:37:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6464:37:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6486:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6486:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6494:6:46",
+ "nodeType": "YulLiteral",
+ "src": "6494:6:46",
+ "type": "",
+ "value": "0x0100"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6482:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6482:3:46"
+ },
+ "nativeSrc": "6482:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6482:19:46"
+ },
+ "variables": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6468:10:46",
+ "nodeType": "YulTypedName",
+ "src": "6468:10:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "6576:22:46",
+ "nodeType": "YulBlock",
+ "src": "6576:22:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nativeSrc": "6578:16:46",
+ "nodeType": "YulIdentifier",
+ "src": "6578:16:46"
+ },
+ "nativeSrc": "6578:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6578:18:46"
+ },
+ "nativeSrc": "6578:18:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6578:18:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6519:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6519:10:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6531:18:46",
+ "nodeType": "YulLiteral",
+ "src": "6531:18:46",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "6516:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6516:2:46"
+ },
+ "nativeSrc": "6516:34:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6516:34:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6555:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6555:10:46"
+ },
+ {
+ "name": "memPtr",
+ "nativeSrc": "6567:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6567:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "6552:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6552:2:46"
+ },
+ "nativeSrc": "6552:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6552:22:46"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "6513:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6513:2:46"
+ },
+ "nativeSrc": "6513:62:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6513:62:46"
+ },
+ "nativeSrc": "6510:88:46",
+ "nodeType": "YulIf",
+ "src": "6510:88:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6614:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6614:2:46",
+ "type": "",
+ "value": "64"
+ },
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6618:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6618:10:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6607:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6607:6:46"
+ },
+ "nativeSrc": "6607:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6607:22:46"
+ },
+ "nativeSrc": "6607:22:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6607:22:46"
+ }
+ ]
+ },
+ "name": "allocate_memory_2312",
+ "nativeSrc": "6380:255:46",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6415:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6415:6:46",
+ "type": ""
+ }
+ ],
+ "src": "6380:255:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "6685:230:46",
+ "nodeType": "YulBlock",
+ "src": "6685:230:46",
+ "statements": [
+ {
+ "nativeSrc": "6695:19:46",
+ "nodeType": "YulAssignment",
+ "src": "6695:19:46",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6711:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6711:2:46",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "6705:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "6705:5:46"
+ },
+ "nativeSrc": "6705:9:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6705:9:46"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6695:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6695:6:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "6723:58:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6723:58:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6745:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6745:6:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "size",
+ "nativeSrc": "6761:4:46",
+ "nodeType": "YulIdentifier",
+ "src": "6761:4:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6767:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6767:2:46",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6757:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6757:3:46"
+ },
+ "nativeSrc": "6757:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6757:13:46"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6776:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6776:2:46",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "6772:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6772:3:46"
+ },
+ "nativeSrc": "6772:7:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6772:7:46"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "6753:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6753:3:46"
+ },
+ "nativeSrc": "6753:27:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6753:27:46"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6741:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "6741:3:46"
+ },
+ "nativeSrc": "6741:40:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6741:40:46"
+ },
+ "variables": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6727:10:46",
+ "nodeType": "YulTypedName",
+ "src": "6727:10:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "6856:22:46",
+ "nodeType": "YulBlock",
+ "src": "6856:22:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nativeSrc": "6858:16:46",
+ "nodeType": "YulIdentifier",
+ "src": "6858:16:46"
+ },
+ "nativeSrc": "6858:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6858:18:46"
+ },
+ "nativeSrc": "6858:18:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6858:18:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6799:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6799:10:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6811:18:46",
+ "nodeType": "YulLiteral",
+ "src": "6811:18:46",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "6796:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6796:2:46"
+ },
+ "nativeSrc": "6796:34:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6796:34:46"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6835:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6835:10:46"
+ },
+ {
+ "name": "memPtr",
+ "nativeSrc": "6847:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6847:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "6832:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6832:2:46"
+ },
+ "nativeSrc": "6832:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6832:22:46"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "6793:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "6793:2:46"
+ },
+ "nativeSrc": "6793:62:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6793:62:46"
+ },
+ "nativeSrc": "6790:88:46",
+ "nodeType": "YulIf",
+ "src": "6790:88:46"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6894:2:46",
+ "nodeType": "YulLiteral",
+ "src": "6894:2:46",
+ "type": "",
+ "value": "64"
+ },
+ {
+ "name": "newFreePtr",
+ "nativeSrc": "6898:10:46",
+ "nodeType": "YulIdentifier",
+ "src": "6898:10:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6887:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "6887:6:46"
+ },
+ "nativeSrc": "6887:22:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6887:22:46"
+ },
+ "nativeSrc": "6887:22:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "6887:22:46"
+ }
+ ]
+ },
+ "name": "allocate_memory",
+ "nativeSrc": "6640:275:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "size",
+ "nativeSrc": "6665:4:46",
+ "nodeType": "YulTypedName",
+ "src": "6665:4:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "6674:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6674:6:46",
+ "type": ""
+ }
+ ],
+ "src": "6640:275:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "6977:107:46",
+ "nodeType": "YulBlock",
+ "src": "6977:107:46",
+ "statements": [
+ {
+ "nativeSrc": "6987:22:46",
+ "nodeType": "YulAssignment",
+ "src": "6987:22:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "7002:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7002:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "6996:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "6996:5:46"
+ },
+ "nativeSrc": "6996:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "6996:13:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "6987:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "6987:5:46"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "7062:16:46",
+ "nodeType": "YulBlock",
+ "src": "7062:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7071:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7071:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7074:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7074:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "7064:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7064:6:46"
+ },
+ "nativeSrc": "7064:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7064:12:46"
+ },
+ "nativeSrc": "7064:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7064:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "7031:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7031:5:46"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "7052:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7052:5:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "7045:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7045:6:46"
+ },
+ "nativeSrc": "7045:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7045:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "7038:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7038:6:46"
+ },
+ "nativeSrc": "7038:21:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7038:21:46"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "7028:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7028:2:46"
+ },
+ "nativeSrc": "7028:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7028:32:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "7021:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7021:6:46"
+ },
+ "nativeSrc": "7021:40:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7021:40:46"
+ },
+ "nativeSrc": "7018:60:46",
+ "nodeType": "YulIf",
+ "src": "7018:60:46"
+ }
+ ]
+ },
+ "name": "abi_decode_bool_fromMemory",
+ "nativeSrc": "6920:164:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nativeSrc": "6956:6:46",
+ "nodeType": "YulTypedName",
+ "src": "6956:6:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nativeSrc": "6967:5:46",
+ "nodeType": "YulTypedName",
+ "src": "6967:5:46",
+ "type": ""
+ }
+ ],
+ "src": "6920:164:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "7164:697:46",
+ "nodeType": "YulBlock",
+ "src": "7164:697:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "7213:16:46",
+ "nodeType": "YulBlock",
+ "src": "7213:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7222:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7222:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7225:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7225:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "7215:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7215:6:46"
+ },
+ "nativeSrc": "7215:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7215:12:46"
+ },
+ "nativeSrc": "7215:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7215:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "7192:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7192:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7200:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7200:4:46",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7188:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7188:3:46"
+ },
+ "nativeSrc": "7188:17:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7188:17:46"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "7207:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7207:3:46"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "7184:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7184:3:46"
+ },
+ "nativeSrc": "7184:27:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7184:27:46"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "7177:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7177:6:46"
+ },
+ "nativeSrc": "7177:35:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7177:35:46"
+ },
+ "nativeSrc": "7174:55:46",
+ "nodeType": "YulIf",
+ "src": "7174:55:46"
+ },
+ {
+ "nativeSrc": "7238:27:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7238:27:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "7258:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7258:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7252:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7252:5:46"
+ },
+ "nativeSrc": "7252:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7252:13:46"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nativeSrc": "7242:6:46",
+ "nodeType": "YulTypedName",
+ "src": "7242:6:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "7308:22:46",
+ "nodeType": "YulBlock",
+ "src": "7308:22:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nativeSrc": "7310:16:46",
+ "nodeType": "YulIdentifier",
+ "src": "7310:16:46"
+ },
+ "nativeSrc": "7310:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7310:18:46"
+ },
+ "nativeSrc": "7310:18:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7310:18:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "7280:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7280:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7288:18:46",
+ "nodeType": "YulLiteral",
+ "src": "7288:18:46",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "7277:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7277:2:46"
+ },
+ "nativeSrc": "7277:30:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7277:30:46"
+ },
+ "nativeSrc": "7274:56:46",
+ "nodeType": "YulIf",
+ "src": "7274:56:46"
+ },
+ {
+ "nativeSrc": "7339:24:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7339:24:46",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7353:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7353:1:46",
+ "type": "",
+ "value": "5"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "7356:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7356:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "7349:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7349:3:46"
+ },
+ "nativeSrc": "7349:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7349:14:46"
+ },
+ "variables": [
+ {
+ "name": "_1",
+ "nativeSrc": "7343:2:46",
+ "nodeType": "YulTypedName",
+ "src": "7343:2:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7372:41:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7372:41:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_1",
+ "nativeSrc": "7403:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7403:2:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7407:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7407:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7399:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7399:3:46"
+ },
+ "nativeSrc": "7399:13:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7399:13:46"
+ }
+ ],
+ "functionName": {
+ "name": "allocate_memory",
+ "nativeSrc": "7383:15:46",
+ "nodeType": "YulIdentifier",
+ "src": "7383:15:46"
+ },
+ "nativeSrc": "7383:30:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7383:30:46"
+ },
+ "variables": [
+ {
+ "name": "dst",
+ "nativeSrc": "7376:3:46",
+ "nodeType": "YulTypedName",
+ "src": "7376:3:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7422:18:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7422:18:46",
+ "value": {
+ "name": "dst",
+ "nativeSrc": "7437:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7437:3:46"
+ },
+ "variables": [
+ {
+ "name": "array_1",
+ "nativeSrc": "7426:7:46",
+ "nodeType": "YulTypedName",
+ "src": "7426:7:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nativeSrc": "7456:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7456:3:46"
+ },
+ {
+ "name": "length",
+ "nativeSrc": "7461:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7461:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7449:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7449:6:46"
+ },
+ "nativeSrc": "7449:19:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7449:19:46"
+ },
+ "nativeSrc": "7449:19:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7449:19:46"
+ },
+ {
+ "nativeSrc": "7477:21:46",
+ "nodeType": "YulAssignment",
+ "src": "7477:21:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nativeSrc": "7488:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7488:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7493:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7493:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7484:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7484:3:46"
+ },
+ "nativeSrc": "7484:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7484:14:46"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nativeSrc": "7477:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7477:3:46"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7507:40:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7507:40:46",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "7529:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7529:6:46"
+ },
+ {
+ "name": "_1",
+ "nativeSrc": "7537:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7537:2:46"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7525:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7525:3:46"
+ },
+ "nativeSrc": "7525:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7525:15:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7542:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7542:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7521:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7521:3:46"
+ },
+ "nativeSrc": "7521:26:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7521:26:46"
+ },
+ "variables": [
+ {
+ "name": "srcEnd",
+ "nativeSrc": "7511:6:46",
+ "nodeType": "YulTypedName",
+ "src": "7511:6:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "7575:16:46",
+ "nodeType": "YulBlock",
+ "src": "7575:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "7584:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7584:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7587:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7587:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "7577:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7577:6:46"
+ },
+ "nativeSrc": "7577:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7577:12:46"
+ },
+ "nativeSrc": "7577:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7577:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "srcEnd",
+ "nativeSrc": "7562:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7562:6:46"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "7570:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7570:3:46"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "7559:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7559:2:46"
+ },
+ "nativeSrc": "7559:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7559:15:46"
+ },
+ "nativeSrc": "7556:35:46",
+ "nodeType": "YulIf",
+ "src": "7556:35:46"
+ },
+ {
+ "nativeSrc": "7600:28:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7600:28:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "7615:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7615:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7623:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7623:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7611:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7611:3:46"
+ },
+ "nativeSrc": "7611:17:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7611:17:46"
+ },
+ "variables": [
+ {
+ "name": "src",
+ "nativeSrc": "7604:3:46",
+ "nodeType": "YulTypedName",
+ "src": "7604:3:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "7695:135:46",
+ "nodeType": "YulBlock",
+ "src": "7695:135:46",
+ "statements": [
+ {
+ "nativeSrc": "7709:14:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "7709:14:46",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "7722:1:46",
+ "nodeType": "YulLiteral",
+ "src": "7722:1:46",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "7713:5:46",
+ "nodeType": "YulTypedName",
+ "src": "7713:5:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "7736:19:46",
+ "nodeType": "YulAssignment",
+ "src": "7736:19:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "7751:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7751:3:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "7745:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7745:5:46"
+ },
+ "nativeSrc": "7745:10:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7745:10:46"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "7736:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7736:5:46"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nativeSrc": "7775:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7775:3:46"
+ },
+ {
+ "name": "value",
+ "nativeSrc": "7780:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7780:5:46"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "7768:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7768:6:46"
+ },
+ "nativeSrc": "7768:18:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7768:18:46"
+ },
+ "nativeSrc": "7768:18:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "7768:18:46"
+ },
+ {
+ "nativeSrc": "7799:21:46",
+ "nodeType": "YulAssignment",
+ "src": "7799:21:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nativeSrc": "7810:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7810:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7815:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7815:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7806:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7806:3:46"
+ },
+ "nativeSrc": "7806:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7806:14:46"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nativeSrc": "7799:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7799:3:46"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "7648:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7648:3:46"
+ },
+ {
+ "name": "srcEnd",
+ "nativeSrc": "7653:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "7653:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "7645:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "7645:2:46"
+ },
+ "nativeSrc": "7645:15:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7645:15:46"
+ },
+ "nativeSrc": "7637:193:46",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "7661:25:46",
+ "nodeType": "YulBlock",
+ "src": "7661:25:46",
+ "statements": [
+ {
+ "nativeSrc": "7663:21:46",
+ "nodeType": "YulAssignment",
+ "src": "7663:21:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "7674:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7674:3:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "7679:4:46",
+ "nodeType": "YulLiteral",
+ "src": "7679:4:46",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "7670:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7670:3:46"
+ },
+ "nativeSrc": "7670:14:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7670:14:46"
+ },
+ "variableNames": [
+ {
+ "name": "src",
+ "nativeSrc": "7663:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7663:3:46"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "7641:3:46",
+ "nodeType": "YulBlock",
+ "src": "7641:3:46",
+ "statements": []
+ },
+ "src": "7637:193:46"
+ },
+ {
+ "nativeSrc": "7839:16:46",
+ "nodeType": "YulAssignment",
+ "src": "7839:16:46",
+ "value": {
+ "name": "array_1",
+ "nativeSrc": "7848:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "7848:7:46"
+ },
+ "variableNames": [
+ {
+ "name": "array",
+ "nativeSrc": "7839:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "7839:5:46"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_array_uint256_dyn_fromMemory",
+ "nativeSrc": "7089:772:46",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nativeSrc": "7138:6:46",
+ "nodeType": "YulTypedName",
+ "src": "7138:6:46",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nativeSrc": "7146:3:46",
+ "nodeType": "YulTypedName",
+ "src": "7146:3:46",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "array",
+ "nativeSrc": "7154:5:46",
+ "nodeType": "YulTypedName",
+ "src": "7154:5:46",
+ "type": ""
+ }
+ ],
+ "src": "7089:772:46"
+ },
+ {
+ "body": {
+ "nativeSrc": "7970:1186:46",
+ "nodeType": "YulBlock",
+ "src": "7970:1186:46",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "8016:16:46",
+ "nodeType": "YulBlock",
+ "src": "8016:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8025:1:46",
+ "nodeType": "YulLiteral",
+ "src": "8025:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8028:1:46",
+ "nodeType": "YulLiteral",
+ "src": "8028:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "8018:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "8018:6:46"
+ },
+ "nativeSrc": "8018:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "8018:12:46"
+ },
+ "nativeSrc": "8018:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "8018:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nativeSrc": "7991:7:46",
+ "nodeType": "YulIdentifier",
+ "src": "7991:7:46"
+ },
+ {
+ "name": "headStart",
+ "nativeSrc": "8000:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "8000:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nativeSrc": "7987:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7987:3:46"
+ },
+ "nativeSrc": "7987:23:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7987:23:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8012:2:46",
+ "nodeType": "YulLiteral",
+ "src": "8012:2:46",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nativeSrc": "7983:3:46",
+ "nodeType": "YulIdentifier",
+ "src": "7983:3:46"
+ },
+ "nativeSrc": "7983:32:46",
+ "nodeType": "YulFunctionCall",
+ "src": "7983:32:46"
+ },
+ "nativeSrc": "7980:52:46",
+ "nodeType": "YulIf",
+ "src": "7980:52:46"
+ },
+ {
+ "nativeSrc": "8041:30:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8041:30:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "8061:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "8061:9:46"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "8055:5:46",
+ "nodeType": "YulIdentifier",
+ "src": "8055:5:46"
+ },
+ "nativeSrc": "8055:16:46",
+ "nodeType": "YulFunctionCall",
+ "src": "8055:16:46"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nativeSrc": "8045:6:46",
+ "nodeType": "YulTypedName",
+ "src": "8045:6:46",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "8114:16:46",
+ "nodeType": "YulBlock",
+ "src": "8114:16:46",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "8123:1:46",
+ "nodeType": "YulLiteral",
+ "src": "8123:1:46",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8126:1:46",
+ "nodeType": "YulLiteral",
+ "src": "8126:1:46",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "8116:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "8116:6:46"
+ },
+ "nativeSrc": "8116:12:46",
+ "nodeType": "YulFunctionCall",
+ "src": "8116:12:46"
+ },
+ "nativeSrc": "8116:12:46",
+ "nodeType": "YulExpressionStatement",
+ "src": "8116:12:46"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nativeSrc": "8086:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "8086:6:46"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "8094:18:46",
+ "nodeType": "YulLiteral",
+ "src": "8094:18:46",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "8083:2:46",
+ "nodeType": "YulIdentifier",
+ "src": "8083:2:46"
+ },
+ "nativeSrc": "8083:30:46",
+ "nodeType": "YulFunctionCall",
+ "src": "8083:30:46"
+ },
+ "nativeSrc": "8080:50:46",
+ "nodeType": "YulIf",
+ "src": "8080:50:46"
+ },
+ {
+ "nativeSrc": "8139:32:46",
+ "nodeType": "YulVariableDeclaration",
+ "src": "8139:32:46",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nativeSrc": "8153:9:46",
+ "nodeType": "YulIdentifier",
+ "src": "8153:9:46"
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "8164:6:46",
+ "nodeType": "YulIdentifier",
+ "src": "8164:6:46"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nati